一、标准库中的日期和时间处理
1、使用datetime包计算时间
1.1 使用datetime包获取当前时间
from datetime import datetime
now = datetime.now()
now
Out[3]: datetime.datetime(2022, 3, 4, 17, 16, 55, 703231)
now.year, now.month, now.day
Out[4]: (2022, 3, 4)
1.2、计算两个datetime的时间差
delta = datetime(2021, 1, 7) - datetime(2020, 6, 24, 8 ,15)
delta.days
Out[7]: 196
delta.seconds
Out[20]: 56700
1.3、对datetime进行加减一段时间, (注:timedelta不能指定月进行加减)
from datetime import timedelta
start = datetime(2020, 2, 7)
start + timedelta(12)
Out[12]: datetime.datetime(2020, 2, 19, 0, 0)
start + timedelta(20)
Out[13]: datetime.datetime(2020, 2, 27, 0, 0)
start + timedelta(months=20)
Traceback (most recent call last):
File "/var/folders/py/ln390kjs3154ds7_qfhn0j140000gn/T/ipykernel_37238/3234709628.py", line 1, in <module>
start + timedelta(months=20)
TypeError: 'months' is an invalid keyword argument for __new__()
1.4、使用 dateutil 对月进行加减
from dateutil.relativedelta import relativedelta
start
Out[25]: datetime.datetime(2020, 2, 7, 0, 0)
start + relativedelta(months=20)
Out[24]: datetime.datetime(2021, 10, 7, 0, 0)
1.5、 datetime模块中的类型
1.5、字符串与datetime转换
stamp = datetime(2011, 1, 3)
str(stamp)
Out[17]: '2011-01-03 00:00:00'
stamp.strftime('%Y%m%d')
Out[18]: '20110103'
stamp.strftime('%y%m%d')
Out[19]: '110103'
datestrs = ['6/6/2016', '8/6/2021']
[datetime.strptime(x, '%m/%d/%Y') for x in datestrs]
Out[29]: [datetime.datetime(2016, 6, 6, 0, 0), datetime.datetime(2021, 8, 6, 0, 0)]
1.6、datetime格式说明
待续。。。