[TOC] time模塊(掌握) 時間戳 時間戳(timestamp):時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量。 1552551519.291029 格式化時間 格式化的時間字元串(format string):格式化時 ...
目錄
time模塊(掌握)
time模塊一般用於不同時間格式的轉換。
import time
時間戳
時間戳(timestamp):時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量。
time_stamp = time.time()
print(time_stamp, type(time_stamp))
1552551519.291029 <class 'float'>
格式化時間
格式化的時間字元串(format string):格式化時間表示的是普通的字元串格式的時間。
format_time = time.strftime("%Y-%m-%d %X")
print(format_time, type(format_time))
2019-03-07 16:22:11 <class 'str'>
結構化時間
結構化的時間(struct time):struct_time元組共有9個元素共九個元素,分別為(年,月,日,時,分,秒,一年中第幾周,一年中第幾天,夏令時)
print('本地時區的struct_time:\n{}'.format(time.localtime()))
print('UTC時區的struct_time:\n{}'.format(time.gmtime()))
本地時區的struct_time:
time.struct_time(tm_year=2019, tm_mon=3, tm_mday=7, tm_hour=16, tm_min=22, tm_sec=11, tm_wday=3, tm_yday=66, tm_isdst=0)
UTC時區的struct_time:
time.struct_time(tm_year=2019, tm_mon=3, tm_mday=7, tm_hour=8, tm_min=22, tm_sec=11, tm_wday=3, tm_yday=66, tm_isdst=0)
# 結構化時間的基準時間
print(time.localtime(0))
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
# 結構化時間的基準時間上增加一年時間
print(time.localtime(3600*24*365))
time.struct_time(tm_year=1971, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=1, tm_isdst=0)
不同格式時間的轉換
如上圖所示,我們總能通過某些方法在結構化時間-格式化時間-時間戳三者之間進行轉換,下麵我們將用代碼展示如何通過這些方法轉換時間格式。
# 結構化時間
now_time = time.localtime()
print(now_time)
time.struct_time(tm_year=2019, tm_mon=3, tm_mday=7, tm_hour=16, tm_min=22, tm_sec=11, tm_wday=3, tm_yday=66, tm_isdst=0)
# 把結構化時間轉換為時間戳格式
print(time.mktime(now_time))
1551946931.0
# 把結構化時間轉換為格式化時間
# %Y年-%m月-%d天 %X時分秒=%H時:%M分:%S秒
print(time.strftime("%Y-%m-%d %X", now_time))
2019-03-07 16:22:11
# 把格式化時間化為結構化時間,它和strftime()是逆操作
print(time.strptime('2013-05-20 13:14:52', '%Y-%m-%d %X'))
time.struct_time(tm_year=2013, tm_mon=5, tm_mday=20, tm_hour=13, tm_min=14, tm_sec=52, tm_wday=0, tm_yday=140, tm_isdst=-1)
# 把結構化時間表示為這種形式:'Sun Jun 20 23:21:05 1993'。
print(time.asctime())
Thu Mar 7 16:22:11 2019
# 如果沒有參數,將會將time.localtime()作為參數傳入。
print(time.asctime(time.localtime()))
Thu Mar 7 16:22:11 2019
# 把一個時間戳轉化為time.asctime()的形式。
print(time.ctime())
Thu Mar 7 16:22:11 2019
# 如果參數未給或者為None的時候,將會預設time.time()為參數。它的作用相當於time.asctime(time.localtime(secs))。
print(time.ctime(time.time()))
Thu Mar 7 16:22:11 2019
其他用法
# 推遲指定的時間運行,單位為秒
start = time.time()
time.sleep(3)
end = time.time()
print(end-start)
3.0005428791046143