import time
一、時間獲取函數
time(), ctime(),gmtime()
>>> import time >>> time.time() 1524297783.3058376 >>> time.ctime() 'Sat Apr 21 16:03:09 2018' >>> time.gmtime() time.struct_time(tm_year=2018, tm_mon=4, tm_mday=21, tm_hour=8, tm_min=4, tm_sec=6, tm_wday=5, tm_yday=111, tm_isdst=0)
二、時間格式化
strftime(tpl, ts) tpl是時間格式化模板字符串,用來定義輸出效果,ts是計算機內部時間類型變量。
>>> t=time.gmtime() >>> time.strftime("%Y-%m-%d %H:%M:%S", t) '2018-04-21 08:05:49'
%Y 年份 %m 月份 %B 月份名稱 January %b 月份名稱縮寫 Jan %d 日期 %A 星期 Monday %a 星期縮寫 Mon %H 小時 24 %h 小時 12 %p 上下午 %M 分鍾 %S 秒
舉例如下:
>>> time.strftime("%Y-%B-%d-%A-%H-%p-%S") '2018-April-21-Saturday-16-PM-10' >>> time.strftime("%A-%p") 'Saturday-PM' >>> time.strftime("%M:%S") '15:39' >>> time.strftime("%M:%S") '15:45' >>> time.strftime("%M:%S",t) '05:49'
如果strftime沒有第二個參數,則默認獲取當前時間。
strptime(timestr, "%Y-%m-%d %H:%M:%S") 根據時間字符串以及格式化輸出,轉換成結構體。
>>> timestr '2018-01-26 12:55:33' >>> time.strptime(timestr,"%Y-%m-%d %H:%M:%S") time.struct_time(tm_year=2018, tm_mon=1, tm_mday=26, tm_hour=12, tm_min=55, tm_sec=33, tm_wday=4, tm_yday=26, tm_isdst=-1)
三、程序計時
測量時間:perf_counter() 返回一個CPU級別的精確時間計數值,單位為妙,由於這個計數值起點不確定,連續調用使用差值才有意義。
>>> start=time.perf_counter() >>> start 3.9111116077602044e-06 >>> end=time.perf_counter() >>> end 10.212393474589648 >>> end - start 10.212389563478041
產生時間:sleep(s) s妙的休眠時間,可以是浮點數,如time.sleep(3.5)
如下有一個時間進度條的實例:
#TextProBarV3.py import time scale = 50 print("start".center(scale//2, "-")) start = time.perf_counter() for i in range(scale + 1): a = "*" * i b = "." * (scale - i) c = (i/scale)*100 dur = time.perf_counter()-start print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur), end="") '''這里\r,光標回到行首, end=“”表示不輸出空格,字符串連續輸出''' time.sleep(0.1) print("\n"+"end".center(scale//2,"-"))
