datetime模块处理时间

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}')

 

posted @ 2019-04-07 12:01  nxf_rabbit75  阅读(653)  评论(0编辑  收藏  举报