python時間處理(一)Time
阿新 • • 發佈:2018-12-06
平常的工作與學習中,會遇到許許多多與時間相關的問題,例如時間戳,時間格式化等等。所以今天就帶大家瞭解一下python中處理時間的模組,time,更多的是希望大家不在坑裡反覆迴圈的進去出來,相信大家都比我聰明 -_ -...
首先,獲取當前時間(以下程式碼預設匯入time模組,不再重複)
import time time.time() #獲取當前時間戳:1542610928.524562 time.localtime(time.time()) #獲取當前時間:將時間戳轉換為時間元組 #time.struct_time(tm_year=2018, tm_mon=11, tm_mday=19, tm_hour=15, tm_min=2, tm_sec=8, tm_wday=0, tm_yday=323, tm_isdst=0)
struct_time(時間元組)中各部分的含義如下表格所示:
屬性 值 tm_year 2018 tm_mon 11(1 到 12) tm_mday 19(1 到 31) tm_hour
15(0 到 23)
tm_min 2(0 到 59) tm_sec 8(0 到 61 ,60或61 是閏秒) tm_wday 0(0到6,0是週一) tm_yday 323(1 到 366(儒略曆)) tm_isdst 0(-1, 0, 1, -1是決定是否為夏令時的旗幟) 獲取格式化時間:
- (asctime方法:直接獲取可讀的時間格式)
time.asctime( time.localtime(time.time())) #'Mon Nov 19 15:21:20 2018'
- (strftime方法:獲取自定義格式的時間,獲取物件為時間元組
)time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()) #'Mon Nov 19 15:39:28 2018' #與asctime()方法獲取的結果格式一致 time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) #'2018-11-19 15:36:50'
時間日期格式化符號如下表所示:
%y 兩位數的年份表示(00-99)
%Y 四位數的年份表示(000-9999)
%m 月份(01-12)
%d 月內中的一天(0-31)
%H 24小時制小時數(0-23)
% I 12小時制小時數(01-12)
%M 分鐘數(00=59)
%S 秒(00-59)
%a 本地簡化星期名稱
%A 本地完整星期名稱
%b 本地簡化的月份名稱
%B 本地完整的月份名稱
%c 本地相應的日期表示和時間表示
% j 年內的一天(001-366)
%p 本地A.M.或P.M.的等價符
%U 一年中的星期數(00-53)星期天為星期的開始
%w 星期(0-6),星期天為星期的開始
%W 一年中的星期數(00-53)星期一為星期的開始
%x 本地相應的日期表示
%X 本地相應的時間表示
%Z 當前時區的名稱
%% %號本身
將格式字串轉換為時間戳:(上面通過time.localtime將時間戳轉換為時間元組,這裡是逆過程)
- (time.mktime(time.strptime()))
其中strptime()根據字串對應的時間格式把一個時間字串解析為時間元組。
a ='Mon Nov 19 15:21:20 2018' time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y")) #時間戳為:1542612080.0
Time模組的其他重要函式:
- time.sleep(),time.timezone
time.sleep(secs) #推遲呼叫程式的執行,secs指秒數。 time.timezone #顯示當地時區(未啟動夏令時)距離格林威治的偏移秒數(>0,美洲;<=0大部分歐洲,亞洲,非洲)。
內容不多,目的是想讓大家明確如何將時間與時間戳來回轉換,並且中間需要時間元組進行過渡,明白了這一點就ok了。