import time, datetime # 時間的幾種格式: # 一:時間戳(timestamp),1970年1月1日0點開始,到現在的秒數(以格林尼治時間為准)。 # 數據類型為'float',浮點數,小數 print('時間戳') print('當前時間') print(time.time()) print(type(time.time())) print('=========================================') # 二:時間元組(Time tuple(time obj)),這是把年月日時分秒周日……作為一個元組 # 數據類型為‘time.struct_time’,元組 print('時間元組') print('當前時間') print(time.localtime()) print(type(time.localtime())) print('年是0位:' + str(time.localtime()[0])) print('月是1位:' + str(time.localtime()[1])) print('日是2位:' + str(time.localtime()[2])) print('時是3位:' + str(time.localtime()[3])) print('分是4位:' + str(time.localtime()[4])) print('秒是5位:' + str(time.localtime()[5])) print('周幾是6位:' + str(time.localtime()[6])) print('第幾天是7位:' + str(time.localtime()[7])) print('夏令時是8位,但是沒用:' + str(time.localtime()[8])) print('-----') print('年是0位:' + str(time.localtime().tm_year)) print('月是1位:' + str(time.localtime().tm_mon)) print('日是2位:' + str(time.localtime().tm_mday)) print('時是3位:' + str(time.localtime().tm_hour)) print('分是4位:' + str(time.localtime().tm_min)) print('秒是5位:' + str(time.localtime().tm_sec)) print('周幾是6位:' + str(time.localtime().tm_wday)) print('第幾天是7位:' + str(time.localtime().tm_yday)) print('夏令時是8位,但是沒用:' + str(time.localtime().tm_isdst)) print('=========================================') # 三:時間格式(Datetime obj),最准確的時間格式,還帶毫秒 # 類型為'datetime.datetime' print('時間格式') print('當前時間') print(datetime.datetime.now()) print(type(datetime.datetime.now())) print('=========================================') # 四:時間字符串(string),就是字符串而已 # 數據類型為‘str’,字符串 print('字符串格式') print('當前時間') now = time.strftime('%Y%m%d%H%M%S') # % 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 當前時區的名稱 # % % % 號本身 print(now) print('=========================================') # 時間字符串,就是一個字符串,不方便進行計算,首先棄用。 # 時間戳,是個浮點數,也不方便進行計算,也棄用。 # 時間元組,是個元組,不能直接存入數據庫,還是棄用。 # 時間格式,這是最基本的格式,優先選用。 # time模塊,是以時間戳為基礎的。 # datetime模塊,是以時間格式為基礎的。 # 首先講定制時間 # 指定時間 # 其實看置頂圖,左右是時間格式,上面是字符串,下面是時間戳 # 想指定時間,就需要從字符串或時間戳轉換過去,時間戳還要計算,我們一般用字符串轉換為時間格式。 print('指定時間') print('datetime指定時間,datetime格式,圖上datetime.datetime.strptime(str,format)') # 可以設置7個參數來指定時間 S_datetime = datetime.datetime(2019, 10, 29, 21, 39, 2, 21111) print(S_datetime) # 可以精簡為3個參數 S_datetime = datetime.datetime(2019, 10, 28) print(S_datetime) print(type(S_datetime)) print('time指定時間,time時間格式(元組),圖上time.strptime(str,format)') S_time = time.strptime('2019102921392', '%Y%m%d%H%M%S') print(S_time) S_time = time.strptime('20191029', '%Y%m%d') print(S_time) # 甚至可以精簡到2個參數 S_time = time.strptime('201910', '%Y%m') print(S_time) S_time = time.strptime('2019年10月29日21時39分2秒', '%Y年%m月%d日%H時%M分%S秒') print(S_time) print(type(S_time)) print('=========================================') # 再轉換回去 # datetime轉換為字符串,圖上dt_obj.strftime() print('時間格式轉換為字符串') print('datetime時間格式轉換為字符串,圖上dt_obj.strftime()') print(S_datetime) print(type(S_datetime)) D_str = S_datetime.strftime('%Y-%m-%d %H:%M:%S %f') print(D_str) D_str = S_datetime.strftime('%Y%m%d%H%M%S%f') print(D_str) print(type(D_str)) print('time時間格式轉換為字符串,圖上time.strftime(format,t_tp)') print(S_time) print(type(S_time)) T_str = time.strftime('%Y%m%d%H%M%S', S_time) print(T_str) T_str = time.strftime('%Y-%m-%d %H:%M:%S', S_time) print(T_str) print('=========================================') # 時間元組和時間格式互轉 print('時間格式和時間元組互轉') print(S_time) print(type(S_time)) print(S_datetime) print(type(S_datetime)) print('時間格式轉時間元組,圖上dt_obj.timetuple()') T_D = S_datetime.timetuple() print(T_D) print('++++++++') print('時間元組轉時間格式,圖上datetime.datetime(t_tp)')#待更新 D_T=datetime.datetime(S_time.tm_year,S_time.tm_mon,S_time.tm_mday) print(D_T) print('=========================================') #時間戳待更新,暫時用的不多。 print('字符串轉時間戳,分兩步') string_2_struct = time.strptime("2016/05/22", "%Y/%m/%d") # 將 日期字符串 轉成 struct時間對象格式 print(string_2_struct) struct_2_stamp = time.mktime(string_2_struct) # 將struct時間對象轉成時間戳 print(struct_2_stamp) print('--------') # # time.clock用於計算執行時間 # t0 = time.clock() # 第一次調用time.clock,標記一個時間為0.0 # time.sleep(2) # t1 = time.clock() # 第二次調用,從第一個time.clock開始到現在的時間 # time.sleep(2) # t2 = time.clock() # 第三次調用,從第一個time.clock開始到現在的時間 # print(t0) # print(t1) # print(t2) # print(t1 - t0) # print(t2 - t1) # print(t2 - t0) # time.sleep(5)#以秒為單位暫停 # 以下字符串方便用來存記錄, now_time = time.strftime('%Y-%m-%d %H:%M:%S') # 20171123093804 當前時間 print(now_time) print(type(now_time)) # 格式是字符串 print('----------') now = str(datetime.datetime.now()) print(now) print(type(now)) # 格式是字符串 帶毫秒的 print('----------') today = time.strftime('%Y%m%d') # 20171123 當前日期 print(today) print(type(today)) # 格式是字符串 print('----------')