python中time模塊其實不難,就是關系轉換有點老記不住,先看下圖可以說明幾個時間對象的的關系.供參考理解.
- 黑色細箭頭表示輸入值,參數
- 深黃色的粗箭頭表示返回值,輸出格式
- 綠色圓圈表示各類對象
- 藍色方框表示具體的方法 (先import time,在使用time模塊中的方法)
time.time():獲取當前時間的時間戳
time.localtime():接受一個時間戳,并把它轉化為一個當前時間的元組。不給參數的話就會默認將time.time()作為參數傳入,localtime返回tuple格式的時間,有一個和它類似的函數叫gmtime(),2個函數的差別是時區,下面會說到。
>>> time.ctime()
'Wed Jan 18 19:54:12 2016'
>>> time.localtime()
(2016, 1, 18, 19, 54, 19, 2, 100, 1) 年,月,日,時,分,秒,周,年中的第幾日,時區標識.
>>> time.gmtime()
(2016, 1, 18, 23, 54, 25, 2, 100, 0)
- time.mktime():和time.localtime()相反,它把一個時間元組轉換成時間戳(這個必須要給一個參數)。
- time.asctime():把一個時間元組表示為:“Sun Jul 28 03:35:26 2013”這種格式,不給參數的話就會默認將time.localtime()作為參數傳入。
- time.ctime():把一個時間戳轉換為time.asctime()的表達格式,不給參數的話就會默認將time.time()作為參數傳入。
- time.gmtime():將一個時間戳轉換為UTC+0時區(中國應該是+8時區,相差8個小時)的時間元組,不給參數的話就會默認將time.time()作為參數傳入。gmtime()返回的是0時區的值,localtime返回的是當前時區的值。
- time.strftime(format,time.localtime()):將一個時間元組轉換為格式化的時間字符,不給時間元組參數的話就會默認將time.localtime()作為參數傳入。
例如web日志里面的時間格式就是time.strftime('%d/%b/%Y:%X')
返回結果:
Sun Jul 28 04:37:38 2013
format:
time.strptime(stringtime,format):將時間字符串根據指定的格式化符轉換成數組形式的時間,
例如:time.strptime('28/Jul/2013:04:33:29', '%d/%b/%Y:%X')
返回結果:
time.struct_time(tm_year=2013, tm_mon=7, tm_mday=28, tm_hour=4, tm_min=33, tm_sec=29, tm_wday=6, tm_yday=209, tm_isdst=-1)
time.clock():返回處理器時鐘時間,一般用于性能測試和基準測試等,因為他們反映了程序使用的實際時間,平常用不到這個。
time.sleep():推遲指定的時間運行,單位為秒。
import timeprint time.time() #打印時間戳print time.localtime()#打印本地時間元組print time.gmtime()#答應UTC+0時區的時間元組print time.ctime()#打印asctime格式化時間print time.mktime(time.localtime())#將時間元組轉換為時間戳print time.asctime()#打印格式化時間print time.strftime('%d/%b/%Y:%X')#打印指定格式的時間格式#把時間字符串和它的格式翻譯成時間元組print time.strptime('28/Jul/2013:04:33:29', '%d/%b/%Y:%X')print '%0.5f'%time.clock() #打印處理器時間for i in range(100000): passprint '%0.5f'%time.clock()#打印處理器時間
######運行結果######
[root@localhost ~]# python time1.py
1364028568.55time.struct_time(tm_year=2013, tm_mon=3, tm_mday=23, tm_hour=4, tm_min=49, tm_sec=28, tm_wday=5, tm_yday=82, tm_isdst=1)time.struct_time(tm_year=2013, tm_mon=3, tm_mday=23, tm_hour=8, tm_min=49, tm_sec=28, tm_wday=5, tm_yday=82, tm_isdst=0)Sat Mar 23 04:49:28 20131364028568.0Sat Mar 23 04:49:28 201323/Mar/2013:04:49:28time.struct_time(tm_year=2013, tm_mon=7, tm_mday=28, tm_hour=4, tm_min=33, tm_sec=29, tm_wday=6, tm_yday=209, tm_isdst=-1)0.020000.03000