轉(zhuǎn)載請(qǐng)?jiān)谖恼缕鹗继幾⒚鞒鎏幠苎遥x謝。
本文轉(zhuǎn)自日期和時(shí)間箫锤,僅供學(xué)習(xí)使用。
日期和時(shí)間
Python內(nèi)建的datetime
模塊提供了datetime
、date
和time
類型恳蹲。datetime
類型結(jié)合了date
和time
步氏,是最常使用的:
In [102]: from datetime import datetime, date, time
In [103]: dt = datetime(2011, 10, 29, 20, 30, 21)
In [104]: dt.day
Out[104]: 29
In [105]: dt.minute
Out[105]: 30
根據(jù)datetime
實(shí)例响禽,你可以用date
和time
提取出各自的對(duì)象:
In [106]: dt.date()
Out[106]: datetime.date(2011, 10, 29)
In [107]: dt.time()
Out[107]: datetime.time(20, 30, 21)
strftime
方法可以將datetime格式化為字符串:
In [108]: dt.strftime('%m/%d/%Y %H:%M')
Out[108]: '10/29/2011 20:30'
strptime
可以將字符串轉(zhuǎn)換成datetime
對(duì)象:
In [109]: datetime.strptime('20091031', '%Y%m%d')
Out[109]: datetime.datetime(2009, 10, 31, 0, 0)
表2-5列出了所有的格式化命令。
當(dāng)你聚類或?qū)r(shí)間序列進(jìn)行分組荚醒,替換datetimes的time字段有時(shí)會(huì)很有用芋类。例如,用0替換分和秒:
In [110]: dt.replace(minute=0, second=0)
Out[110]: datetime.datetime(2011, 10, 29, 20, 0)
因?yàn)?code>datetime.datetime是不可變類型界阁,上面的方法會(huì)產(chǎn)生新的對(duì)象侯繁。
兩個(gè)datetime對(duì)象的差會(huì)產(chǎn)生一個(gè)datetime.timedelta
類型:
In [111]: dt2 = datetime(2011, 11, 15, 22, 30)
In [112]: delta = dt2 - dt
In [113]: delta
Out[113]: datetime.timedelta(17, 7179)
In [114]: type(delta)
Out[114]: datetime.timedelta
結(jié)果timedelta(17, 7179)
指明了timedelta
將17天、7179秒的編碼方式泡躯。
將timedelta
添加到datetime
贮竟,會(huì)產(chǎn)生一個(gè)新的偏移datetime
:
In [115]: dt
Out[115]: datetime.datetime(2011, 10, 29, 20, 30, 21)
In [116]: dt + delta
Out[116]: datetime.datetime(2011, 11, 15, 22, 30)