目录
datetime日期时间模块
日期时间指的是时间与日期的合体。其实上一讲的time模块已经能拿到时间与日期数据了。这一讲中的datetime模块功能更强大,相当于是对time模块的 扩展。然而,datetime并不能完全取代time,它们之间功能有重复的地方,也有独有的部分。比如time中能获取时间戳,还有sleep功能,而datetime功能偏向不同。
datetime模块的主要内容
datetime模块主要包含下面几个内容
- date 日期类
- time 时间类
- datetime 日期时间类
- timedelta 时间间隔类
先来查看datetime模块内容
import datetime
print(dir(datetime))
显示结果如下
C:UsershccmaAnaconda3python.exe E:/wkp01/p00/test01/atestpkg/t42.py
['MAXYEAR', 'MINYEAR', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'date', 'datetime', 'datetime_CAPI', 'sys', 'time', 'timedelta', 'timezone', 'tzinfo']
Process finished with exit code 0
日期类
示例如下
import datetime
myday=datetime.date.today()
print(myday)
print(myday.year)
print(myday.month)
print(myday.day)
运行结果
C:UsershccmaAnaconda3python.exe E:/wkp01/p00/test01/atestpkg/t42.py
2021-02-23
2021
2
23
Process finished with exit code 0
时间类
示例如下
import datetime
mytime=datetime.time(11,20,30,888)
print(mytime)
print(mytime.hour)
print(mytime.minute)
print(mytime.second)
print(mytime.microsecond)
运行结果
C:UsershccmaAnaconda3python.exe E:/wkp01/p00/test01/atestpkg/t42.py
11:20:30.000888
11
20
30
888
Process finished with exit code 0
日期时间类
datetime类其实是可以看做是date类和time类的合体。
import datetime
mydt=datetime.datetime.now()
print(mydt) # 日期与时间
print(mydt.date()) # 只有日期
print(mydt.time()) # 只有时间
print(mydt.year)
print(mydt.month)
print(mydt.day)
print(mydt.hour)
print(mydt.minute)
print(mydt.second)
结果如下
C:UsershccmaAnaconda3python.exe E:/wkp01/p00/test01/atestpkg/t42.py
2021-02-23 11:24:40.818385
2021-02-23
11:24:40.818385
2021
2
23
11
24
40
Process finished with exit code 0
datetime类与time模块都能获取日期和时间内容,有部分功能相似。
strftime 将datetime对象转换成指定格式的字符串
strptime将字符串转换成datetime类型数据
fromtimestamp可以将时间戳转换成datetime类型
timedelta类
示例如下
from datetime import datetime, timedelta
now = datetime.now()
print(now)
later = now + timedelta(hours=1)
print(later)
运行结果
C:UsershccmaAnaconda3python.exe E:/wkp01/p00/test01/atestpkg/t42.py
2021-02-23 11:33:12.156020
2021-02-23 12:33:12.156020
Process finished with exit code 0
时间的计算
时间可以直接加减计算
示例如下
from datetime import datetime
dt1 = datetime(year=2021, month=2, day=21, hour=10, minute=30, second=10)
dt2 = datetime(year=2021, month=2, day=23, hour=11, minute=36, second=45)
mytimedelta = dt2 - dt1
print(type(mytimedelta))
print(mytimedelta)
print(mytimedelta.days)
print(mytimedelta.seconds)
运行结果
C:UsershccmaAnaconda3python.exe E:/wkp01/p00/test01/atestpkg/t42.py
<class 'datetime.timedelta'>
2 days, 1:06:35
2
3995
Process finished with exit code 0
拓展
更多内容可以参考官方手册