#時間模塊 import time #經常使用方法 #time.sleep(secs)#(線程)推遲指定的時間運行。單位爲秒 #print(time.time())#獲取當前時間戳 #表示時間的三種方式 #在python中,一般有三種方式來表示時間:時間戳,元組(結構化時間),格式化的時間字符串: #1.時間戳(timestamp):一般來講,時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量,是一個float類型 #2.格式化的時間字符串(Format String):‘1972-1-2’ #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 當前時區的名稱 # %% %號自己 #3.元組(struct_time):struct_time元組共有9個元素(年,月,日,使,分,秒,一年中第幾周,一年中第幾天,是不是夏令時) # 索引(Index) 屬性(Attribute) 值(Values) # 0 tm_year(年) 好比2011 # 1 tm_mon(月) 1 - 12 # 2 tm_mday(日) 1 - 31 # 3 tm_hour(時) 0 - 23 # 4 tm_min(分) 0 - 59 # 5 tm_sec(秒) 0 - 60 # 6 tm_wday(weekday) 0 - 6(0表示週一) # 7 tm_yday(一年中的第幾天) 1 - 366 # 8 tm_isdst(是不是夏令時) 默認爲0 #時間戳 print(time.time) #時間字符串 print(time.strftime('%Y-%m-%d')) print(time.strftime('%Y-%m-%d %H:%M:%S')) #時間元組:localtime()將一個時間戳轉換爲當前時區的struct_time print(time.localtime()) # 結果: # 2018-08-08 # 2018-08-08 16:13:36 # time.struct_time(tm_year=2018, tm_mon=8, tm_mday=8, tm_hour=16, tm_min=13, tm_sec=36, tm_wday=2, tm_yday=220, tm_isdst=0) #注:時間戳是計算機可以識別的時間;時間字符串是人可以看懂的時間;元組則是用來操做時間的 #幾種格式之間的轉換 #1.時間戳-->結構化時間 #time.gmtime(時間戳) #UTC時間,與英國倫敦當地時間一致 #time.localtime(時間戳) #當地時間。咱們是北京是啊金,與UTC時間相差8小時 print(time.gmtime(12000000000)) #結果: #time.struct_time(tm_year=2350, tm_mon=4, tm_mday=7, tm_hour=21, tm_min=20, tm_sec=0, tm_wday=4, tm_yday=97, tm_isdst=0) print(time.localtime(12000000000)) #結果: #time.struct_time(tm_year=2350, tm_mon=4, tm_mday=8, tm_hour=5, tm_min=20, tm_sec=0, tm_wday=5, tm_yday=98, tm_isdst=0) #2.結構化時間--->時間戳 #time.mktime(結構化時間) time_tuple = time.localtime(12000000000) print(time.mktime(time_tuple)) #結果: #12000000000.0 #3.結構時間--->字符串時間 #time.strftime('格式定義','結構化時間') 結構化時間參數若不傳,則實現當前時間 print(time.strftime('%Y-%m-%d')) print(time.strftime('%Y-%m-%d'), time.localtime(12000000000)) #結果: #2018-08-08 #2018-08-08 time.struct_time(tm_year=2350, tm_mon=4, tm_mday=8, tm_hour=5, tm_min=20, tm_sec=0, tm_wday=5, tm_yday=98, tm_isdst=0) #4.字符串時間--->結構化時間 #time.strptime('時間字符串','字符串對應格式') print(time.strptime('2020-1-1', '%Y-%m-%d')) print(time.strptime('2020/1/2', '%Y/%m/%d')) #結果: #time.struct_time(tm_year=2020, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=1, tm_isdst=-1) #time.struct_time(tm_year=2020, tm_mon=1, tm_mday=2, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=2, tm_isdst=-1) #5.結構化時間---> %a %b %d %H:%M:%Y串 #time.asctime(結構化時間) 若是不傳參數,直接返回當前時間的格式化串 print(time.asctime()) print(time.asctime(time.localtime(12000000000))) #結果: #Wed Aug 8 16:42:30 2018 #Sat Apr 8 05:20:00 2350 #6.時間戳--->%a %b %d %H:%M:%Y串 #time.ctime(時間戳) 若是不傳參數,直接返回當前時間的格式化串 print(time.ctime()) print(time.ctime(12000000000)) #結果: # Wed Aug 8 16:44:31 2018 # Sat Apr 8 05:20:00 2350 #其餘方法 print(time.clock())#計算cpu執行時間
import time true_time = time.mktime(time.strptime('2008-08-08 08:08:08', '%Y-%m-%d %H:%M:%S')) # 註冊時間(註冊時的字符串時間轉換爲結構化時間再轉換爲時間戳) time_now = time.time() # 當前時間 dif_time = time_now - true_time # 時間戳的時間差 struct_time = time.gmtime(dif_time) # 將時間差的時間戳轉換爲結構化時間 print(struct_time) print('過去了%d年%d月%d天%d小時%d分鐘%d秒' % (struct_time.tm_year - 1970, struct_time.tm_mon - 1, struct_time.tm_mday - 1, struct_time.tm_hour, struct_time.tm_min, struct_time.tm_sec)) #在將結構化是時間的時間差算出