1. 程式人生 > >python時間處理(一)Time

python時間處理(一)Time

平常的工作與學習中,會遇到許許多多與時間相關的問題,例如時間戳,時間格式化等等。所以今天就帶大家瞭解一下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了。