python中最常用的三個處理時間的庫:time、datetime、calendar。
本文主要講解 time 的用法。
先上目錄
一、time模塊的作用
二、time模塊表示時間的四種方式
三、四種表示時間的方式之間的轉換圖
四、time模塊一些常用api的用法
一、time模塊的作用
時間獲取、表達和轉換。
二、time模塊表示時間的四種方式
時間戳(timestamp)的表現形式:
1581838663.752684
時間對象(struct_time)表現形式 :
time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)
默認時間字符串(defaut_time)表示形式:
'Feb 16 2020 07:42:38'
自定義時間字符串(format_time)表示形式:
'2020-02-16 17:37:28'
接下來,詳細講解這四種時間表示方式
(1)timestamp:時間戳表現形式
生成時間戳的例子:
time.time()
(2)struct_time:時間對象表現形式
生成時間對象的例子:
time.strptime("30 Nov 00", "%d %b %y")
(3)format_string:自定義時間字符串表現形式
生成自定義時間字符串的例子:
time.strftime('%b %d %Y %H:%M:%S', time.gmtime(time.time()))
(4)defaut_string:默認時間字符串表現形式
生成默認時間字符串的例子:
time.asctime()
默認以 %a %b %d %H:%M:%S %Y 形式展示
三、四種表示時間的方式之間的轉換圖
format_string、struct_time、timestamp的互相轉換如下圖所示:
defaut_time、struct_time、timestamp的相互轉換如下圖所示:
四、time模塊一些常用api的用法
(1)time.asctime(t)
說明:
接受時間元組並返回 默認時間字符串(defaut_time)的形式, t 代表元組(下面的內容不再做此說明)
形如:"Sun Jun 20 23:21:05 1993" (1993年6月20日 週日 23時21分05秒)
例子:
注意,傳入的時間元組的格式是:
t = (tm_year, tm_mon, tm_mday,
tm_hour, tm_min, tm_sec,
tm_wday, tm_yday, tm_isdst)
以下是參數對照表:
指數 |
屬性 |
價值觀 |
---|---|---|
0 |
|
(例如,1993年) |
1 |
|
範圍[1,12] |
2 |
|
範圍[1,31] |
3 |
|
範圍[0,23] |
4 |
|
範圍[0,59] |
5 |
|
範圍[0,61]; 見(2)中 |
6 |
|
範圍[0,6],星期一爲0 |
7 |
|
範圍[1,366] |
8 |
|
0、1或-1;見下文 |
不適用 |
|
時區名稱的縮寫 |
不適用 |
|
以秒爲單位偏移UTC以東 |
(2)time.time()
說明:返回當前時間的時間戳(1970紀元後經過的浮點秒數)
例子:
(3)time.sleep(secs)
說明:推遲調用線程的運行,secs指秒數。
例子:
(4)time.ctime(secs)
說明:作用相當於asctime(localtime(secs)),未給參數相當於asctime()
例子:
(5)time.localtime([secs]
說明:
不傳入參數的話,返回當前時間的時間對象(struct_time);
傳入時間戳參數的話,返回指定時間時間對象。
例子:
(6)time.strftime(format, t)
說明:
接收以時間對象(struct_time),並返回以自定義字符串所表示的當地時間,格式由 format 決定。
例子:
一般習慣格式化成:%Y-%m-%d %H:%M:%S
拓展:python中時間日期格式化符號(比較常用的標 )
%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 當前時區的名稱
%% %號本身
(7)time.strptime(string, format)
說明:根據 format 的格式把一個時間字符串解析爲時間元組。
例子:
(8)time.mktime(string, format)
說明:接受時間對象並返回時間戳(1970紀元後經過的浮點秒數)。
例子:
(9)time.gmtime([secs])
說明:接收時間戳並返回時間對象
例子:
(10)time.process_time()
說明:返回當前進程執行 CPU 的時間總和,不包含睡眠時間。
例子:
(11)
time.perf_counter()
說明:返回計時器的精準時間(系統的運行時間),包含整個系統的睡眠時間。
例子:
(10)和(11)常常用來計算程序的執行耗時。
假如說,你平時用的是 jupyter,還有一個更簡單的方式計算程序執行耗時。
那就是 %timeit。
例子:
是不是特別方便呢?
總結一下
比較常用的api有
time.time() | 獲取當前時間戳 |
time.localtime() | 獲取當前時間對象 |
time.gmtime() | 時間戳轉時間對象 |
time.mktime() | 時間對象轉時間戳 |
time.strftime() | 時間對象轉自定義時間字符串 |
time.strptime() |
自定義時間字符串轉時間對象 |
time.sleep() | 延時 |
關於作者
github:https://github.com/GitDzreal93/dev-tester
微信公衆號:測試開發guide