import time# print(help(time)) # 顯示time模塊全文本# Functions: # 執行結果 # time() -- return current time in seconds since the Epoch as a float # 以浮點數返回以秒計算的從19 ...
import time
# print(help(time)) # 顯示time模塊全文本
# Functions: # 執行結果
# time() -- return current time in seconds since the Epoch as a float
# 以浮點數返回以秒計算的從1970年到現在為止的時間,time.time()常用於獲取當前時間
# time.time() # 這個函數無參數
# print(time.time()) # 1512195215.1153893
# clock() -- return CPU time since process start as a float
# 以浮點數返回CPU運行當前程式所需要的時間
# time.clock() # 這個函數無參數
# print(time.time()) # 1512195308.783902
# sleep() -- delay for a number of seconds given as a float
# 程式在此停頓多少秒,參數為浮點數
# time.sleep(seconds) # 有一個名為seconds(秒)的參數,是浮點型參數, 執行這個函數必須輸入seconds參數,否則無效
# time.sleep(1.1111111)
# gmtime() -- convert seconds since Epoch to UTC tuple
# 接收時間輟(1970紀元後經過的浮點秒數)並返回格林威治天文時間下的時間元組
# time.gmtime(seconds) # 有一個名為seconds(秒)的參數,是浮點型,可傳入可為空,為空時顯示當前世界標準時間
# print(time.gmtime()) # time.struct_time(tm_year=2017, tm_mon=12, tm_mday=2, tm_hour=6, tm_min=24, tm_sec=13, tm_wday=5, tm_yday=336, tm_isdst=0)
# print(time.gmtime(1.00000000000000001)) # time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=1, tm_wday=3, tm_yday=1, tm_isdst=0)
# tm_year為年, tm_mon為月, tm_mday為日, tm_hour世界標準時間小時, tm_min分, tm_sec秒, tm_wday世界標準時間星期, tm_yday為一年的第多少天, tm_isdst為夏令時
# print(time.gmtime().tm_year) # 2017
# print(time.gmtime().tm_mon) # 12
# tm_year 2008
# tm_mon 1 到 12
# tm_mday 1 到 31
# tm_hour 0 到 23
# tm_min 0 到 59
# tm_sec 0 到 61 (60或61 是閏秒)
# tm_wday 0到6 (0是周一)
# tm_yday 一年中的第幾天,1 到 366
# tm_isdst 是否為夏令時,值有:1(夏令時)、0(不是夏令時)、-1(未知),預設 -1
# 重點!
# print(time.gmtime()) # time.struct_time(tm_year=2017, tm_mon=12, tm_mday=2, tm_hour=15, tm_min=31, tm_sec=47, tm_wday=5, tm_yday=336, tm_isdst=0)
# a = tuple(time.gmtime())
# print(type(a)) # <class 'tuple'>
# print(a) # (2017, 12, 2, 15, 33, 58, 5, 336, 0)
# time.gmtime() 與 time.localtime() 取得的數據可以直接轉換為元組!
# localtime() -- convert seconds since Epoch to local time tuple
# 接收時間輟(1970紀元後經過的浮點秒數)並返回當地時間下的時間元組(tm_isdst可取0或1,取決於當地當時是不是夏令時)
# time.localtime(seconds) # 有一個名為seconds(秒)的參數,是浮點型,可傳入可為空,為空時顯示當前世界標準時間
# print(time.localtime()) # time.struct_time(tm_year=2017, tm_mon=12, tm_mday=2, tm_hour=14, tm_min=41, tm_sec=30, tm_wday=5, tm_yday=336, tm_isdst=0)
# print(time.localtime(1.00000001)) # time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=1, tm_wday=3, tm_yday=1, tm_isdst=0)
# print(time.localtime().tm_wday) # 5 # localtime並沒有將tm_wday=5, tm_yday=336轉成本地日期,因為發文時是星期6,tm_wday與tm_year分別應為6,337
# print(time.gmtime().tm_wday) # 5
# localtime() 與gmtime() 唯一的不同只是時區顯示的不同
# asctime() -- convert time tuple to string
# 接受時間元組並返回一個可讀的形式為"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18時07分14秒)的24個字元的字元串。同時將時間轉化為了ASCII碼。
# time.asctime(tuple) # 有一個名為tuple的參數。該參數可以為空,為空時顯示當前本地時間。如果參數不為空,則元組必須要有9個參數,示例類型為:(2017, 12, 2, 23, 36, 0, 5, 336, 0),否則報錯!
# print(time.asctime()) # Sat Dec 2 15:06:47 2017 以此種方式顯示本地時間
# 以下為示例:
# a = tuple(time.localtime())
# print(a) # (2017, 12, 2, 23, 36, 0, 5, 336, 0)
# print(time.asctime(a)) # Sat Dec 2 23:34:43 2017
# print(time.asctime((2017, 12, 2, 23, 36, 0, 5, 336, 0))) # Sat Dec 2 23:36:00 2017
# print(time.asctime(time.gmtime())) # Sat Dec 2 23:39:18 2017
# print(time.asctime(time.localtime())) # Sat Dec 2 23:39:18 2017
# time.asctime()最好結合time.gmtime() 與 time.localtime() 使用。最好別自己打個含有9個數據的元組傳到time.asctime()中,這樣容易出錯!
# ctime() -- convert time in seconds to string
# 將時間綴記錄的時間轉化Sat Dec 2 15:22:24 2017這種格式的字元串
# 作用相當於asctime(localtime(secs)),未給參數相當於asctime()
# time.ctime(seconds) # 有一個名為seconds(秒)的參數,是浮點型,可傳入參數也可為空,為空時相當於asctime()
# print(type(time.ctime())) # <class 'str'>
# print(time.ctime()) # Sat Dec 2 15:22:24 2017
# print(time.ctime(1.0001)) # Thu Jan 1 08:00:01 1970 這個時間是按本地時間算出的
# time模塊中只有time.time()能獲取一個seconds格式的時間綴
# mktime() -- convert local time tuple to seconds since Epoch
# 接受時間元組並返回時間輟(1970紀元後經過的浮點秒數)
# time.mktime(tuple)有一個名為tuple的參數。該參數不能為空。
# 可接收time.gmtime() 和 time.localtime() 的參數
# print(time.mktime(time.gmtime())) # 1512201669.0
# print(time.mktime(time.localtime())) # 1512201700.0
# print(time.mktime((2017, 12, 2, 23, 36, 0, 5, 336, 0))) # 1512228960.0
# strftime() -- convert time tuple to string according to format specification 格式化輸出時間函數
# 接收以時間元組,並返回以可讀字元串表示的當地時間,格式由fmt決定。
# time.strftime(format, tuple)函數有兩個參數,format參數自己定義自己的格式,tuple格式可以通過time模塊中的time.gmtime() 與time.localetime() 或者直接傳入正確的9元素元組來進行參數錄入。
# 參數中format參數必須存在,tuple為空則取當前時間。
# help(time.strftime)
# %Y Year with century as a decimal number.
# %m Month as a decimal number [01,12].
# %d Day of the month as a decimal number [01,31].
# %H Hour (24-hour clock) as a decimal number [00,23].
# %M Minute as a decimal number [00,59].
# %S Second as a decimal number [00,61].
# %z Time zone offset from UTC.
# %a Locale's abbreviated weekday name.
# %A Locale's full weekday name.
# %b Locale's abbreviated month name.
# %B Locale's full month name.
# %c Locale's appropriate date and time representation.
# %I Hour (12-hour clock) as a decimal number [01,12].
# %p Locale's equivalent of either AM or PM.
# 相關漢化:
# %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(time.strftime("%Y-%m-%d %H:%M:%S")) # 2017-12-03 00:18:10
# print(time.strftime("%y-%Y-%m-%d-%H-%I-%M-%S-%a-%A-%b-%B-%c-%j-%p-%U-%w-%W-%x-%W-%x-%X-%Z-%%")) # 17-2017-12-03-00-12-22-01-Sun-Sunday-Dec-December-Sun Dec 3 00:22:01 2017-337-AM-49-0-48-12/03/17-48-12/03/17-00:22:01-?D1¨²¡À¨º¡Á?¨º¡À??-%
# format參數必須為%y;%Y;%m;%d;%H;%I;%M;%S;%a;%A;%b;%B;%c;%j;%p;%U;%w;%W;%x;%W;%x;%X;%Z;%%這類格式,怎麼格式化輸出自己定義。
# strptime() -- parse string to time tuple according to format specification 格式化輸出時間函數
# 根據fmt的格式把一個時間字元串解析為時間元組。
# time.strptime(string, format)函數有兩個參數
# print(time.strptime("Thu Jan 1 08:00:01 1970",)) # time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=1, tm_wday=3, tm_yday=1, tm_isdst=-1)
# print(time.strptime("30 Nov 00", "%d %b %y")) # time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)
# print(time.strptime("30 Nov 00", "%d %b %y")) # time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)
# print(time.strptime("00 Nov 30", "%y %b %d")) # time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)
# print(time.strptime("Nov 00 30", "%b %y %d")) # time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)
# string的順序可以調換,相應的format的參數順序也需要進行相對應的調換,都能進行輸出。
# print(time.strptime(time.strftime(time.asctime()))) # time.struct_time(tm_year=2017, tm_mon=12, tm_mday=3, tm_hour=0, tm_min=58, tm_sec=57, tm_wday=6, tm_yday=337, tm_isdst=-1) 這種情況下可以只傳string參數不傳format參數
# tzset() -- change the local timezone
# Python time tzset() 根據環境變數TZ重新初始化時間相關設置。
# 這個好像很重要,但我沒太看了,自己掌握吧,略!
# 參考:http://www.runoob.com/python3/python3-date-time.html