datetime 模塊用於操作日期時間
模塊內定義了5個類:date,time,datetime,timedelta,tzinfo
1、timedelta對象,代表一個時間間隔
datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]]):所有參數均為可選,默認0.0,最終只有days,seconds和microseconds會保留在內部,來確保統一
類的屬性:min,max,resolution
類的方法:+,-,*,//,abs(),str(),repr(),total_seconds()
2、date對象,代表一個日期(年月日)
datetime.date(year, month, day):所有參數都是必須的
類的屬性:min,max,resolution
類的方法:+,-,<,today(),fromtimestamp(timestamp):從一個時間戳返回日期,時間戳可用time.time()獲得,date.fromordinal(ordinal):ordinal為以從1年1月1日為1開始計數的數,返回對應日期
實例屬性:year,month,day
實例方法:
replace(year, month, day):返回一個替換日期后的新對象,原對象不變
timetuple():返回time.struct_time((d.year, d.month, d.day, 0, 0, 0, d.weekday(), yday, -1))
toordinal():ordinal為以從1年1月1日為1開始計數的數,返回對應日期
weekday():星期一為0開始計數
isoweekday():星期一為1開始計數
isocalendar():每年第一個包含周四的星期為第一周,以此開始計數
isoformat():返回'YYYY-MM-DD'
__str__():同上
ctime():date(2002, 12, 4).ctime() == 'Wed Dec 4 00:00:00 2002'
strftime(format):控制格式化輸出,%d、%m、%y等
__format__(format):同上
3、datetime對象,代表一個完整的日期和時間
datetime.datetime(year, month, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]])
類的屬性:min,max,resolution
類的方法:+,-,<,today(),now([tz]),utcnow(),fromtimestamp(timestamp[, tz]),utcfromtimestamp(timestamp),fromordinal(ordinal),combine(date, time):把date對象和time對象組合,strptime(date_string, format):用format把date_string轉成datetime對象
實例屬性:year,month,day,hour,minute,second,microsecond,tzinfo
實例方法:
date():返回date對象
time():返回time對象,tzinfo為None
timetz():返回有tzinfo屬性的time對象
replace([year[, month[, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]]]]):返回一個替換日期后的新對象,原對象不變
astimezone(tz):返回一個新的datetime對象,它擁有tz作為其tzinfo屬性,可以使時間變為當地時間,同時又與之前的UTC時間一致,tz一定要是tzinfo的子類
utcoffset,dst,tzname():都返回self.tzinfo的對應方法
timetuple():返回time.struct_time((d.year, d.month, d.day, d.hour, d.minute, d.second, d.weekday(), yday, dst))
utctimetuple():如果實例對象是naive的,結果同上,如果是aware的,就會標准化到UTC時間
date擁有的方法它也同樣擁有,因為是子類
4、time對象,代表某一天的時間,即小時,分鍾,秒,微秒
datetime.time([hour[, minute[, second[, microsecond[, tzinfo]]]]])
類的屬性:min,max,resolution
類的方法:比較,hash(用作字典的key),efficient pickling
實例屬性:hour,minute,second,microsecond,tzinfo
實例方法:replace([hour[, minute[, second[, microsecond[, tzinfo]]]]]),isoformat(),__str__(),strftime(format),__format__(format),utcoffset(),dst(),tzname()
5、tzinfo對象,是一個抽象基類,不能直接實例化,子類若需要進行pickling,則__init__()方法不能帶參數,否則可能會導致unpickle失敗
創建一個具體子類時,根據需要重載以下方法
utcoffset(self, dt):UTC(協調世界時),返回當地時間的時區,UTC以東為正,以西為負,返回值需為timedelta對象
dst(self, dt):DST(夏令時)的設置,基本沒用
tzname(self, dt):返回字符串,內容是dt對應的時區名字
以上方法都是對應於datetime和time對象的方法,datetime對象以自己作為參數,time對象傳入None為參數,因此以上方法要考慮到這兩種情況
格式控制如下:

