1. 程式人生 > >【python】詳解time模組功能asctime、localtime、mktime、sleep、strptime、strftime、time等函式以及時間的加減運算

【python】詳解time模組功能asctime、localtime、mktime、sleep、strptime、strftime、time等函式以及時間的加減運算

在Python中,與時間處理相關的模組有:time、datetime以及calendar。學會計算時間,對程式的調優非常重要,可以在程式中狂打時間戳,來具體判斷程式中哪一塊耗時最多,從而找到程式調優的重心處。這裡先來講一個time模組。

time模組所包含的函式能夠實現以下功能:獲取當前的時間、操作時間和日期、從字串讀取時間及格式化時間為字串。

  • timestamp時間戳,時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量;返回時間戳的函式主要有time()、clock()等
  • struct_time時間元組,共有九個元素組。gmtime(),localtime(),strptime()
  • format time 格式化時間,已格式化的結構使時間更具可讀性。包括自定義格式和固定格式。

不同格式之間的轉換如圖:
這裡寫圖片描述
其中format_string 型別的時間和struct_time之間可以轉換,timestamp時間戳可以和struct_time之間進行轉化,但是時間戳和格式化時間是不能直接轉換的。

struct_time元組結構:
這裡寫圖片描述

format time結構化表示:
這裡寫圖片描述

1、time.time()當前時間的時間戳,返回float資料,自1970年1月1日開始按照秒計算的偏移量,可以進行差值計算得到秒差

2、time.clock()該函式有兩個功能:

  • 在第一次呼叫的時候,返回的是程式執行的實際時間;
  • 以第二次之後的呼叫,返回的是自第一次呼叫後,到這次呼叫的時間間隔
  • 在win32系統下,這個函式返回的是真實時間(wall time),而在Unix/Linux下返回的是CPU時間。

3、time.gmtime([secs])可以將timestamp時間戳轉化為時間元組

4、time.localtime([secs])可以將timestamp時間戳轉為時間元組

5、time.mktime(t):將一個struct_time轉化為時間戳
time.mktime() 函式執行與gmtime(), localtime()相反的操作,它接收struct_time物件作為引數,返回用秒數表示時間的浮點數。如果輸入的值不是一個合法的時間,將觸發 OverflowError 或 ValueError。

  • 引數:t – 結構化的時間或者完整的9位元組元素

6、time.sleep(secs):執行緒推遲指定的時間執行 執行緒睡眠指定時間,單位為秒。

7、time.asctime([t])*生成固定格式的時間表示格式,把一個表示時間的元組或者struct_time*表示為’Sat Jan 13 21:56:34 2018’這種形式。如果沒有給引數,會將time.localtime()作為引數傳入。

  • 引數:t – 9個元素的元組或者通過函式 gmtime() 或 localtime() 返回的時間值;

8、time.ctime([secs]) 生成固定格式的時間表示格式,把一個時間戳(按秒計算的浮點數)託福口語模板轉化為time.asctime()的形式。如果為指定引數,將會預設使用time.time()作為引數。它的作用相當於time.asctime(time.localtime(secs)) 。

  • 引數:sec – 要轉換為字串時間的秒數

9、time.strftime( format [, t] ) 通過函式將struct_time轉成格式字串,把一個代表時間的元組或者struct_time(如由time.localtime()和time.gmtime()返回)轉化為格式化的時間字串,格式由引數format決定。如果未指定,將傳入time.localtime()。如果元組中任何一個元素越界,就會丟擲ValueError的異常。雅思報名費函式返回的是一個可讀表示的本地時間的字串。
引數:

  • format:格式化字串
  • t :可選的引數是一個struct_time物件

這裡寫圖片描述

10、time.strptime(string,format) 將格式字串轉化成struct_time。該函式是time.strftime()函式的逆操作。time.strptime() 函式根據指定的格式把一個時間字串解析為時間元組。所以函式返回的是struct_time物件

  • 引數:string :時間字串;format:格式化字串;

11、time加減主要是通過時間戳的方式進行加減