作者:韩信子@ShowMeAI
教程地址:http://www.showmeai.tech/tuto...
本文地址:http://www.showmeai.tech/article-detail/90
申明:版权所有,转载请分割平台与作者并注明出处
Python日期与工夫
在Python的开发过程中,咱们常常要解决工夫类型的数据,Python内置了 time
, datetime
等规范库,帮忙咱们对工夫型进行解决,在本节内容中,咱们将围绕这两个规范库,具体开展介绍罕用办法。
1.time模块
在Python中,time
模块次要用于将工夫戳转换为具体的日期工夫,但time
模块示意日期工夫的对象构造简略,不适宜进行简单的操作和示意。
(1)模块用法
time
模块中只有time.struct_time
一个类:
struct_time
是一个转换秒数失去的结构化的工夫对象,能够通过下标或属性名称获取对象的年月日时分秒等属性。调用 gmtime()
,localtime()
,strptime()
等办法可失去 struct_time
实例。
>>> st = time.localtime()>>> sttime.struct_time(tm_year=2021, tm_mon=10, tm_mday=27, tm_hour=19, tm_min=27, tm_sec=31, tm_wday=2, tm_yday=300, tm_isdst=0)>>> st.tm_mon10>>> st[1]10
# 在struct_time和字符串之间进行转换>>> time.strftime('%H:%M:%S')'19:10:37'>>> time.strptime("30 Nov 00", "%d %b %y") time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)
import time# 格式化成2021-10-27 19:56:36模式print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))# 格式化成Sat Mar 28 22:24:24 2016模式print(time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())) # 将格局字符串转换为工夫戳a = "Wed Oct 27 19:56:36 2021"print(time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y")))
2.datetime模块
datetime
模块反对日期和工夫的运算,它提供了一些用于操作日期和工夫的类。该模块的绝大部分性能都围绕着以下 4 个类(以及另外两个对于时区的类)的办法和属性来实现。
(1)date
类及用法
date
类示意日期类型。
反对的操作符:
- 反对与另一
date
对象进行==
,≤
,<
,≥
,>
等比拟操作。 - 反对与
timedelta
对象进行加减操作,后果仍然为date
对象。 - 反对与另一
date
对象进行相减操作,失去timedelta
对象。 - 反对哈希。
代码示例:
# 传入日期对应的年月日参数,实例化date类>>> from datetime import date>>> date(2021, 10, 29)datetime.date(2021, 10, 29)# 能够通过工夫戳取得工夫>>> date.fromtimestamp(time.time())datetime.date(2021, 10, 29)>>> d2 = date(2021, 10, 29)>>> d1 = date(2021, 10, 27)>>> d2 > d1True>>> d2 - d1datetime.timedelta(days=2)
(2)time
类及用法
time
类示意工夫(时分秒)类型。
反对的操作符
- 反对与另一
time
对象进行==
,≤
,<
,≥
,>
等比拟操作。 - 反对哈希。
代码示例
>>> from datetime import time>>> t = time.fromisoformat('19:32:10')>>> t.strftime('%Hh %Mm %Ss')'19h 32m 10s'>>> t = time(hour=19, minute=27, second=55)>>> t.isoformat()'19:27:55'
(3)datetime
类及用法
datetime
类示意蕴含日期时候的工夫类型,能够视作 date
和 time
实例的组合体,因而同时具备了两种对象的大部分办法和属性。
反对的操作符
datetime
反对与date
进行相等比拟,但后果肯定为False
,除此之外只反对与另一datetime
对象执行==
,≤
,<
,≥
,>
等比拟操作。- 反对与
timedelta
相加,后果为datetime
;反对与timedelta
对象进行加减,后果仍然为datetime
对象,与另一datetime
对象进行相减,失去timedelta
对象。 - 同样反对哈希。
代码示例
>>> from datetime import datetime>>> datetime(year=2021, month=10, day=29)datetime.datetime(2021, 10, 29, 0, 0)>>> datetime.now()datetime.datetime(2021, 10, 29, 14, 51, 18, 731235)>>> datetime.fromisoformat('2021-10-29 16:09:32')datetime.datetime(2021, 10, 29, 16, 9, 32)>>> dt = datetime.now()>>> dt.timestamp()1635317544.682565>>> dt.date()datetime.date(2021, 10, 29)
(4)timedelta
timedelta
类对象示意两个 datetime
对象之间的差别。
反对的操作符
- 只反对与另一
timedelta
进行比拟,进行==
,≤
,<
,≥
,>
等比拟操作。 timedelta
对象反对反对加减操作,datetime
与timedelta
相加或相减依然返回datetime
。timedelta
还反对乘除模除等操作符。- 反对哈希。
timedelta
是有符号的,反对abs()
函数,可返回两个datetime
之间的相对距离。
代码示例
>>> from datetime import timedelta>>> timedelta(days=2)datetime.timedelta(days=2)>>> dt1 = datetime.now()>>> dt2 = datetime.now()>>> dt2 -dt1datetime.timedelta(seconds=4, microseconds=476390)>>> d = timedelta(minutes=3, seconds=35)>>> d.total_seconds()215.0
材料与代码下载
本教程系列的代码能够在ShowMeAI对应的github中下载,可本地python环境运行,能迷信上网的宝宝也能够间接借助google colab一键运行与交互操作学习哦!
本教程系列波及的Python速查表能够在以下地址下载获取:
- Python速查表
拓展参考资料
- Python教程—Python3文档
- Python教程-廖雪峰的官方网站
ShowMeAI相干文章举荐
- python介绍
- python装置与环境配置
- python根底语法
- python根底数据类型
- python运算符
- python条件管制与if语句
- python循环语句
- python while循环
- python for循环
- python break语句
- python continue语句
- python pass语句
- python字符串及操作
- python列表
- python元组
- python字典
- python汇合
- python函数
- python迭代器与生成器
- python数据结构
- python模块
- python文件读写
- python文件与目录操作
- python谬误与异样解决
- python面向对象编程
- python命名空间与作用域
- python工夫和日期
ShowMeAI系列教程举荐
- 图解Python编程:从入门到精通系列教程
- 图解数据分析:从入门到精通系列教程
- 图解AI数学根底:从入门到精通系列教程
- 图解大数据技术:从入门到精通系列教程