1. 程式人生 > >09.2 python基礎--time庫

09.2 python基礎--time庫

09.2.1 常用函式

  • time()----獲取當前時間戳,即計算機內部時間值,浮點數
  • ctime()----獲取當前時間並以易讀方式表示,返回字串
  • gmtime()----獲取當前時間,表示為計算機可處理的時間格式
import time as  t
print(t.time())
print(t.ctime())
print(t.gmtime())

>>1522765487.9220555
>>Tue Apr  3 22:24:47 2018
>>time.struct_time(tm_year=2018, tm_mon=4, tm_mday=3, tm_hour=14, tm_min=24, tm_sec=47, tm_wday=1, tm_yday=93, tm_isdst=0)

09.2.2 時間格式化

  • strftime(tpl, ts)-----tpl是格式化模板字串,用來定義輸出效果,ts是計算機內部時間型別變數
import time as ti
t = ti.gmtime()
print(ti.strftime("%Y-%m-%d %H:%M:%S",t))
>>2018-04-03 15:15:09
  • strptime(str, tpl)-----str是字串形式的時間值,tpl是格式化模板字串,用來定義輸入效果
timeStr = '2018-01-26 12:55:20'
print(ti.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=20, tm_wday=4, tm_yday=26, tm_isdst=-1)

09.2.3 程式計時

  • 測量時間:perf_counter()--------返回一個CPU級別的精確時間計數值,單位為秒
import time
start = time.perf_counter()
end = time.perf_counter()
t = end - start
print(t)

  • 產生時間:sleep()-------s擬休眠的時間,單位是秒,可以是浮點數

09.2.4 文字進度條

import time
scale = 10
print("------執行開始------")
for i in range(scale+1):
    a = '*'*i
    b = '.'*(scale-i)
    c = (i/scale)*100
    print('[{}->{}]'.format(a,b))
    print("{:^3.0f}%[{}->{}]".format(c,a,b))   #取3位,保留0位小數,居中對齊  
    time.sleep(0.1)
print("------執行結束------")

##結果
------執行開始------
 0 %[->..........]
10 %[*->.........]
20 %[**->........]
30 %[***->.......]
40 %[****->......]
50 %[*****->.....]
60 %[******->....]
70 %[*******->...]
80 %[********->..]
90 %[*********->.]
100%[**********->]
------執行結束------

##單行重新整理文字進度條
import time as t
s =50
print('執行開始'.center(s//2,'-'))
start = t.perf_counter()
for i in range(s+1):
    a = '*'*i
    b = '.'*(s-i)
    c = i/s*100
    dur =t.perf_counter() - start
    print('\r{:^3.0f}%[{}->{}]{:.2f}s'.format(c,a,b,dur),end = '')
    t.sleep(0.3)
print('\n'+'執行結束'.center(s//2,'-'))



09.2.5 時區與夏令時

import time as t
n = t.timezone  ## 獲取當前時區和UTC時間相差的秒數,在沒有夏令時的情況下的間隔,東八區的是 -28800
m = t.altzone   ## 獲取當前時區與UTC時間相差的秒數,在有夏令時的情況下
y = t.daylight  ## 測當前是否是夏令時時間狀態, 0 表示是

print(n,m,y)
>-28800 -32400 0