Python程式能用很多方式處理日期和時間。轉換日期格式是一個常見的例行瑣事。Python有一個 time 和 calendar 模組可以幫忙。
什麼是Tick?
時間間隔是以秒為單位的浮點小數。
每個時間戳記都以自從1970年1月1日午夜(曆元)經過了多長時間來表示。
Python附帶的受歡迎的time模組下有很多函數可以轉換常見日期格式。如函數time.time()用ticks計時單位返回從12:00am, January 1, 1970(epoch) 開始的記錄的當前作業系統時間, 如下執行個體:
#!/usr/bin/pythonimport time; # This is required to include time module.ticks = time.time()print "Number of ticks since 12:00am, January 1, 1970:", ticks
以上執行個體輸出結果:
Number of ticks since 12:00am, January 1, 1970: 7186862.73399
Tick單位最適於做日期運算。但是1970年之前的日期就無法以此表示了。太遙遠的日期也不行,UNIX和Windows只支援到2038年某日。
什麼是時間元組?
很多Python函數用一個元組裝起來的9組數文書處理時間:
上述也就是struct_time元組。這種結構具有如下屬性:
擷取目前時間
從返回浮點數的時間輟方式向時間元群組轉換,只要將浮點數傳遞給如localtime之類的函數。
#!/usr/bin/pythonimport time;localtime = time.localtime(time.time())print "Local current time :", localtime
以上執行個體輸出結果:
Local current time : time.struct_time(tm_year=2013, tm_mon=7, tm_mday=17, tm_hour=21, tm_min=26, tm_sec=3, tm_wday=2, tm_yday=198, tm_isdst=0)
擷取格式化的時間
你可以根據需求選取各種格式,但是最簡單的擷取可讀的時間模式的函數是asctime():
#!/usr/bin/pythonimport time;localtime = time.asctime( time.localtime(time.time()) )print "Local current time :", localtime
以上執行個體輸出結果:
Local current time : Tue Jan 13 10:17:09 2009
擷取某月日曆
Calendar模組有很廣泛的方法用來處理年曆和月曆,例如列印某月的月曆:
#!/usr/bin/pythonimport calendarcal = calendar.month(2008, 1)print "Here is the calendar:"print cal;
以上執行個體輸出結果:
Here is the calendar: January 2008Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 1314 15 16 17 18 19 2021 22 23 24 25 26 2728 29 30 31