time模塊
一、簡介
1.在python中通常有這幾種方式表示時間:
1) 時間戳
2) 格式化的時間字符串
3) 時間元組(struct_time)共九個元素
2. UTC亦即格林威治時間,世界標準時間。在中國為 UTC+8。
3. 時間戳(timestamp):通常來說,時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量。返回時間戳方式的函數主要有time()等。
4.時間元組(struct_time)方式:struct_time共有9個元素,返回struct_time的主要函數有gmtime(),localtime(),strptime()。如下:
二、時間函數
import time
1. time.time() 返回當前時間的時間戳
t = time.time() print(t) # 輸出 1495016507.4327872
2. time.localtime() 將一個時間戳轉換為當前時區的struct_time。secs參數未提供,則以當前時間為準
t1 = time.localtime() print(t1) #輸出 time.struct_time(tm_year=2017, tm_mon=5, tm_mday=17, tm_hour=18, tm_min=22, tm_sec=54, tm_wday=2, tm_yday=137, tm_isdst=0)
3.time.gmtime() 和localtime()方法類似,gmtime()方法是將一個時間戳轉換為UTC時區(0時區)的struct_time。
t3 = time.gmtime() print(t3) # 輸出 time.struct_time(tm_year=2017, tm_mon=5, tm_mday=17, tm_hour=10, tm_min=22, tm_sec=54, tm_wday=2, tm_yday=137, tm_isdst=0)
可以看到 tm_hour 和 上面的相差了8個小時
4. time.mktime() 將一個struct_time轉化為時間戳。
print(time.mktime(t1)) # 輸出 1495016896.0
5.time.asctime() 把一個表示時間的元組或者struct_time表示為這種形式:‘Sun Jun 20 23:21:05 1993‘。如果沒有參數,將會將time.localtime()作為參數傳入。
print(time.asctime()) # 輸出 Wed May 17 19:09:05 2017
6. time.ctime() 同上
7.time.strftime(format,t)
把一個代表時間的元組或者struct_time(如由time.localtime()和time.gmtime()返回)轉化為格式化的時間字符串。如果t未指定,將傳入time.localtime()。如果元組中任何一個元素越界,ValueError的錯誤將會被拋出。
t = time.localtime() print(t) print(time.strftime("%Y-%m-%d %X", t)) # 輸出 time.struct_time(tm_year=2017, tm_mon=5, tm_mday=17, tm_hour=19, tm_min=16, tm_sec=4, tm_wday=2, tm_yday=137, tm_isdst=0) 2017-05-17 19:16:04
8.time.strptime(string[, format]):把一個格式化時間字符串轉化為struct_time。實際上它和strftime()是逆操作。
t = "2017-05-16 17:23:12" print(time.strptime(t, "%Y-%m-%d %H:%M:%S")) # 輸出 time.struct_time(tm_year=2017, tm_mon=5, tm_mday=16, tm_hour=17, tm_min=23, tm_sec=12, tm_wday=1, tm_yday=136, tm_isdst=-1)
三、時間轉換
1. 格式化字符串 --- 時間戳
import time print("格式化字符串".center(20, ‘-‘)) t = "2017-05-16 17:23:12" print(t) print("時間元組".center(20, ‘-‘)) t1 = time.strptime(t, "%Y-%m-%d %H:%M:%S") print(t1) print("時間戳".center(20, ‘-‘)) t2 = time.mktime(t1) print(t2) # 輸出 -------格式化字符串------- 2017-05-16 17:23:12 --------時間元組-------- time.struct_time(tm_year=2017, tm_mon=5, tm_mday=16, tm_hour=17, tm_min=23, tm_sec=12, tm_wday=1, tm_yday=136, tm_isdst=-1) --------時間戳--------- 1494926592.0
2. 時間戳 --- 格式化字符串
import time print("時間戳".center(20, ‘-‘)) t = time.time() print(t) print("時間元組".center(20, ‘-‘)) t1 = time.localtime(t) # 如果此處用 time.gmtime()則生成的時間元組會和本地時間有一個UTC時間差 print(t1) print("格式化字符串".center(20, ‘-‘)) t2 = time.strftime("%Y-%m-%d %X", t1) print(t2) # 輸出 --------時間戳--------- 1495020952.5951612 --------時間元組-------- time.struct_time(tm_year=2017, tm_mon=5, tm_mday=17, tm_hour=19, tm_min=35, tm_sec=52, tm_wday=2, tm_yday=137, tm_isdst=0) -------格式化字符串------- 2017-05-17 19:35:52
time模塊