1. 程式人生 > 其它 >Python--time模組

Python--time模組

 1 #兩種時間方式
 2 #時間戳:time_stamp,從計算機誕生的那一天到現在過了多少秒,每過一秒加1
 3 #格式化好的時間:
 4 #時間元組:time_tuple
 5 
 6 import time,os
 7 
 8 print(time.strftime("%Y-%m-%d %H:%M:%S"))#取當前格式化好的時間。2022-03-11 17:36:59
 9 print(time.strftime("%y-%m-%d %H:%M:%S"))#注意Yy輸出結果的區別。22-03-11 17:36:59
10 print(time.time())#取當前時間戳。1646991419.9585357
11 12 #時間戳的存在,便於時間計算,比如1天就是24小時*60分*60秒,3天再*3即可 13 print(1646990810+3*24*60*60)#1647250010 14 15 # 時間元組 16 print(time.localtime())# 取當前時間的時間元組 17 print(time.localtime(1646991419.9585357))#取指定時間的時間元組 18 #localtime取本地時間,所以優先選擇這個。time.struct_time(tm_year=2022, tm_mon=3, tm_mday=11, tm_hour=17, tm_min=36, tm_sec=59, tm_wday=4, tm_yday=70, tm_isdst=0)
19 print(time.gmtime(1646991419.9585357)) 20 #注意:gmtime取標準時區的時間,非東八區時間。time.struct_time(tm_year=2022, tm_mon=3, tm_mday=11, tm_hour=9, tm_min=36, tm_sec=59, tm_wday=4, tm_yday=70, tm_isdst=0) 21 22 23 # 時間戳轉化為格式化好的時間 24 # 方法一:先轉換為時間元組,再用strftime,不轉換會報錯 25 creat_time = os.path.getctime("222.txt")#獲取某檔案建立時間。creat_time:1646055876.3876796
26 time_tuple = time.localtime(creat_time)#轉化為時間元組。time_tuple:time.struct_time(tm_year=2022, tm_mon=2, tm_mday=28, tm_hour=21, tm_min=44, tm_sec=36, tm_wday=0, tm_yday=59, tm_isdst=0) 27 print(time.strftime("%Y-%m-%d %H:%M:%S",time_tuple))#轉化為格式好的時間。2022-02-28 21:44:36 28 29 #方法二:可以直接用ctime非標準化時間 30 print(time.ctime(creat_time))#Mon Feb 28 21:44:36 2022 31 32 # 格式化好的時間轉換為時間戳 33 time_tuple = time.strptime("2022-02-28 21:44:36","%Y-%m-%d %H:%M:%S")#格式化好的時間轉化為時間元組。time.struct_time(tm_year=2022, tm_mon=2, tm_mday=28, tm_hour=21, tm_min=44, tm_sec=36, tm_wday=0, tm_yday=59, tm_isdst=-1) 34 time_stamp = time.mktime(time_tuple) 35 print(time_stamp)#把時間元組轉化為時間戳。1646055876.0 36 print(int(time_stamp))#去掉小數點,1646055876 37 38 39 # 格式化好的時間轉化為時間戳。 40 def str_to_timestamp(str = None ,format= "%Y-%m-%d %H:%M:%S"): 41 # format預設格式,想輸出其他格式可以傳參 42 if str : 43 time_tuple = time.strptime(str,format)#時間元組 44 return int(time.mktime(time_tuple))#如果傳參就輸出傳參對應的時間戳 45 return int(time.time()) #str不傳參就輸出當前時間的時間戳 46 47 print(str_to_timestamp("2022-02-28 21:44:36")) #format預設格式 48 print(str_to_timestamp("2022-02-28","%Y-%m-%d")) #fomat手動輸入格式,前面的str要與之格式一致 49 print(str_to_timestamp())#為空輸出檔期按時間時間戳 50 51 # 時間戳轉化為格式化好的時間 52 def stamptime_to_str(stamptime = None,format= "%Y-%m-%d %H:%M:%S"): 53 #如果不傳時間戳,就返回當前時間格式化好的時間 54 if stamptime : 55 time_tuple = time.localtime(stamptime) 56 return time.strftime(format,time_tuple) 57 return time.strftime(format)#這一行等於下面三行 58 # else: 59 # time_tuple = time.localtime() 60 # return time.strftime(format, time_tuple) 61 62 print(stamptime_to_str()) 63 print(stamptime_to_str(1646055876.3876796)) 64 print(stamptime_to_str(1646055876,"%Y-%m-%d"))