datetime模塊是python自帶對(duì)時(shí)間的操作,其常用的四大類分別是date、time、datetime、timedelta。下面分別講解下這四大類中常用的方法及其屬性。
date類
date類的對(duì)象有三個(gè)參數(shù)構(gòu)成:year、month、day,我們先創(chuàng)建一個(gè)對(duì)象。
a = datetime.date(2018,10,9)
常用方法:
- 比較日期大?。汗灿辛N方法,分別是__eq__、__ge__、__gt__、__le__、__lt__、__ne__,其分別表示==、>=、>、<=、<、!=,返回的結(jié)果是True或False。
da = datetime.date(2018,10,9) be = datetime.date(2018,1,1)
- 獲取兩日期的相差天數(shù):有兩種方法,__sub__和__rsub__,這兩種方法本質(zhì)相同,只是一個(gè)正向減,一個(gè)反向減。
- ISO標(biāo)準(zhǔn)化日期:有三種格式,一種是年-周數(shù)-星期數(shù),方法是isocalender;另一種是年-月-日,方法是isofoemat;最后一種是星期數(shù)(周一為1,周日為7),方法是isoweekday。
da = datetime.date(2018,10,9)
to = datetime.date.today()
- 日期的格式化輸出:有三種方法,__format__和strftime方法差不多,第三種是輸出ctime格式。
da = datetime.date(2018,10,9) print(da.__format__('%y/%m/%d')) print(da.strftime('%Y-%m-%d'))
time類
time類對(duì)象參數(shù)有hour、minute、second、microsecond、tzinfo,這些參數(shù)都是可選參數(shù)。我們先創(chuàng)建一個(gè)time對(duì)象。
da = datetime.time(19,30,30)
常用方法:
- 比較時(shí)間大小,這個(gè)與date一樣,有六種方法。
- ISO標(biāo)準(zhǔn)化時(shí)間:isoformat函數(shù)。
- 時(shí)間字符串輸出:有__format__方法和strtfime方法。
da = datetime.time(19,30,30) print(da.__format__('%H/%M/%S')) print(da.strftime('%I:%M:%S'))
datetime類
datetime類可以看成是date類和time類的結(jié)合體,datetime對(duì)象的參數(shù)有year、month、day、hour、minute、second等,其中年月日參數(shù)必須要有。老規(guī)矩先創(chuàng)建一個(gè)datetime對(duì)象。
da = datetime.datetime(2018,10,10,0,35,30)
常用方法:
now = datetime.datetime.now() >>>2018-10-10 00:37:31.301851
- 分別返回對(duì)象的日期和時(shí)間部分:兩個(gè)方法,返回日期的date()和返回時(shí)間的time()。
now = datetime.datetime.utcnow() >>>2018-10-09 16:40:52.682584
- 格式化時(shí)間輸出:用strftime方法
- combin方法:將一個(gè)date和time對(duì)象合成一個(gè)datetime對(duì)象
now = datetime.datetime.now() print(datetime.datetime.combine(date,time)) >>>2018-10-10 00:46:21.209452
- strptime方法:由string、format兩個(gè)參數(shù)返回一個(gè)datetime對(duì)象
print(datetime.datetime.strptime('2017-3-22 15:25','%Y-%m-%d %H:%M'))
- strftime方法:由datetime對(duì)象轉(zhuǎn)為string對(duì)象。
In [2]: datetime.now().strftime('%y-%m-%d %h:%M:%S') Out[2]: '19-05-16 May:21:31'
- astimezone方法:將一個(gè)datetime對(duì)象轉(zhuǎn)為有時(shí)區(qū)的datetime對(duì)象,參數(shù)tc是時(shí)區(qū)對(duì)象,可由pytz模塊生成。
- 日期時(shí)間轉(zhuǎn)為時(shí)間戳:timestamp方法
now = datetime.datetime.now() timestamp = now.timestamp()
- 時(shí)間戳轉(zhuǎn)為日期時(shí)間:fromtimestamp方法
time = datetime.datetime.fromtimestamp(timestamp) >>>2018-10-10 00:51:58.044790
timedelta類
此類包含屬性days、seconds、microxeconds。此類創(chuàng)建對(duì)象的參數(shù)為關(guān)鍵字參數(shù),參數(shù)沒有年、月,由天、微秒、毫秒、周、小時(shí)、分鐘。
delta = datetime.timedelta(days = 2,hours = 2,minutes=30,seconds = 30,microseconds=300,milliseconds=66,weeks = 1) >>>9 days, 2:30:30.066300
|