Python內建的datetime
模塊提供了datetime
、date
和time
類型。datetime
類型結合了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
根據datetime
實例,你能夠用date
和time
提取出各自的對象:spa
In [106]: dt.date() Out[106]: datetime.date(2011, 10, 29) In [107]: dt.time() Out[107]: datetime.time(20, 30, 21)
strftime
方法能夠將datetime格式化爲字符串:code
In [108]: dt.strftime('%m/%d/%Y %H:%M') Out[108]: '10/29/2011 20:30'
strptime
能夠將字符串轉換成datetime
對象:對象
In [109]: datetime.strptime('20091031', '%Y%m%d') Out[109]: datetime.datetime(2009, 10, 31, 0, 0)
表2-5列出了全部的格式化命令。blog
表2-5 Datetime格式化指令(與ISO C89兼容)字符串
當你聚類或對時間序列進行分組,替換datetimes的time字段有時會頗有用。例如,用0替換分和秒:import
In [110]: dt.replace(minute=0, second=0) Out[110]: datetime.datetime(2011, 10, 29, 20, 0)
由於datetime.datetime
是不可變類型,上面的方法會產生新的對象。date
兩個datetime對象的差會產生一個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
結果timedelta(17, 7179)
指明瞭timedelta
將17天、7179秒的編碼方式。im
將timedelta
添加到datetime
,會產生一個新的偏移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)