time模組提供了一些用於管理時間和日期的C庫函式,由於它繫結到底層C實現,因此一些細節會基於具體的平臺。
一.壁掛鐘時間
1.time()
time模組的核心函式time(),它返回紀元開始的秒數,返回值為浮點數,具體精度依賴於平臺。
1 2 3 |
>>>import time >>>time.time() 1460599046.85416 |
2.ctime()
浮點數一般用於儲存和比較日期,但是對人類不友好,要記錄和列印時間,可以使用ctime()。
1 2 3 4 5 6 |
>>>import time >>>time.ctime() 'Thu Apr 14 10:03:58 2016' >>> later = time.time()+5 >>> time.ctime(later) 'Thu Apr 14 10:05:57 2016' |
二.處理器時鐘時間
clock()返回處理器時鐘時間,它的返回值一般用於效能測試與基準測試。因此它們反映了程式的實際執行時間。
1 2 3 |
>>>import time >>>time.clock() 0.07 |
三.時間組成
time模組定義了struct_time來維護時間和日期,其中分開儲存各個組成部分,以便訪問。
1 2 3 4 5 6 7 8 9 10 11 12 |
import time def show_struct(s): print 'tm_year:", s.tm_year print 'tm_mon:", s.tm_mon print "tm_mday:", s.tm_mday print "tm_hour:",s.tm_hour print "tm_min:", s.tm_min print "tm_sec:", s.tm_sec print "tm_wday:", s.tm_wday print "tm_yday:", s.tm_yday show_struct(time.gmtime()) show_struct(time.localtime()) |
gmtime()用於獲取UTC時間,localtime()用於獲取當前時區的當前時間,UTC時間實際就是格林尼治時間,它與中國時間的時差為八個小時。
1 |
locatime() = gmtime() + 8hour |
四.處理時區
1.獲取時間差
1 2 3 |
>>>import time >>>time.timezone/3600 -8 |
2.設定時區
1 2 3 4 |
ZONES = ["GMT", "EUROPE/Amsterdam'] for zone in ZONES: os.environ["TZ"] = zone time.tzset() |
五.解析和格式化時間
time模組提供了兩個函式strptime()和strftime(),可以在struct_time和時間值字串之間轉換。
1.strptime()
用於將字串時間轉換成struct_time格式:
1 2 3 |
>>> now=time.ctime() >>> time.strptime(now) time.struct_time(tm_year=2016, tm_mon=4, tm_mday=14, tm_hour=10, tm_min=48, tm_sec=40, tm_wday=3, tm_yday=105, tm_isdst=-1) |
2.strftime()
用於時間的格式化輸出
1 2 3 |
>>> from time import gmtime, strftime >>> strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime()) 'Thu, 28 Jun 2001 14:17:15 +0000' |
3.mktime()
用於將struct_time轉換成時間的浮點數表示
1 2 3 |
>>>from time import mktime, gmtime >>>mktime(gmtime()) 1460573789.0 |
六.sleep()
sleep函式用於將當前執行緒交出,要求它等待系統將其再次喚醒,如果寫程式只有一個執行緒,這實際上就會阻塞程式,什麼也不做。
1 2 3 4 |
import time def fucn(): time.sleep(5) print "hello, world" |
執行上面的程式碼,將等待5秒鐘之後再輸出資訊。