python常用的处理时间的库有:datetime,time,calendar。datetime库包括了date(储存日期:(年、月、日),time(储存时间:(小时、分、秒和微秒),timedelta代表两个datetime之间的差(天、秒、微秒)。
一、datetime处理日期
- datetime.now():
当前时间
- datetime.timedelta():计算相差天数和秒数
- datetime():创建datetime格式
1. datetime.now()
from datetime import datetime
now=datetime.now()
print(f'当前时间:{now}')
print(f'{now.year}年{now.month}月{now.day}日')
2. datetime.timedelta()
timedelta计算相差天数和秒数
from datetime import timedelta
delta = timedelta(days=1,seconds=1300)
delta_seconds = delta.total_seconds()
print(delta_seconds/3600)
print(delta_seconds)
from datetime import timedelta
start=datetime(2019,4,1)
#计算50天后是哪一天
start+timedelta(50)
3. datetime( )
(1)创建datetime格式
datetime(%Y,%m,%d,%H,%M,%S)
datetime共有6个参数,分别代表的是年月日时分秒。其中年月日是必须要传入的参数,时分秒可以不传入,默认全为零。
二、时间格式处理及转换
1. str.strftime('格式')
(1)datetime格式转换成字符串
stamp = datetime(2019,4,6)
datetime.strptime只能根据设定的时间格式来处理指定的字符串,如果列表里(list)包含不止一种格式的字符串,如datestr=['12/20/2018','12/11/2018','2018-10-18'],使用datetime.strptime就很难处理了。这时候,可以使用第三方dateutil包的parser.parse方法。这个包能够解析大部分人类可理解的日期表示。
(2)parser.parse
日期出现在月份之前,可以通过传递dayfirst=True来表明
from dateutil.parser import parse
datestr=['12/20/2018','20180210','2019-01-10']
#转换成datetime格式
new_d=[parse(d) for d in datestr]
#统一为12/20/2018格式
d1=[d.strftime('%m/%d/%Y') for d in new_d]
d2=[d.strftime('%Y%m%d') for d in new_d]
d3=[d.strftime('%Y-%m-%d') for d in new_d]
d4=[d.strftime('%y-%m-%d') for d in new_d]
print(f'datetime格式:\n{new_d}')
print(f'"月/日/年"格式:\n {d1}')
print(f'"年月日"格式:\n{d2}')
print(f'"年-月-日格式":\n{d3}')
print(f'"年(后两位)-月-日"格式:\n{d4}')