首頁 > 軟體

python中time庫使用詳解

2022-06-10 14:01:15

time庫的使用:

Python中內建了一些與時間處理相關的庫,如time、datatime和calendar庫。

其中time庫是Python中處理時間的標準庫,是最基礎的時間處理庫。

time庫的功能如下:

(1)計算機時間的表達

(2)提供獲取系統時間並格式化輸出功能

(3)提供系統級精確計時功能,用於程式效能分析

格式如下:

import time

time.<b>( )

time庫包括三類函數:

時間獲取:time()、ctime()、gmtime()、localtime()

時間格式化:strftime()、strptime()、asctime()

程式計時:sleep()、perf_counter()

時間獲取:

(1)time函數

獲取當前時間戳(從世界標準時間的1970年1月1日00:00:00開始到當前這一時刻為止的總秒數),即計算機內部時間值,浮點數。

範例程式碼如下:

import time
print(time.time())

執行介面如下:

(2)localtime()函數和gmtime()函數

Python提供了可以獲取結構化時間的localtime()函數和gmtime函數

獲取當前時間,表示為計算機可處理的時間格式(struct_time格式)

localtime()函數和gmtime()函數都可將時間戳轉換為以元組表示的時間物件(struct_time格式),但是localtime()函數得到的是當地時間,gmtime()函數得到的是世界統一時間。

格式如下所示:

localtime([secs])
gmtime([secs])

其中secs是一個表示時間戳的浮點數,若不提供該引數,預設以time()函數獲取的時間戳作為引數。

localtime函數範例程式碼如下:

import time
print(time.localtime())#預設以以time()函數獲取的時間戳作為引數,為當地時間
print(time.localtime(34.54))#引數為浮點數

執行介面如下:

 gmtime函數範例如下:

import time
print(time.gmtime())#世界統一時間。
print(time.gmtime(34.54))

執行介面如下: 

struct_time元組中元素的含義和取值

元素含義取值
tm_year

4位元數位,如2022

tm_mon1~12,如2
tm_mday1~31,如5
tm_hour0~23,如7
tm_min0~59,如50
tm_sec0~61(60或61是閏秒)
tm_wday一週的第幾日0~6(0為週一,依此類推)
tm_yday一年的第幾日1~366(366為儒略曆)
tm_isdst夏令時

1:是夏令時

0:非夏令時

-1:不確定

(3)ctime()函數(與asctime()函數為一對互補函數)

讀取當前時間並以易讀方式表示,返回字串。

ctime()函數用於將一個時間戳(以s為單位的浮點數)轉換為“Sat Jan 13 21:56:34 2018"這種形式(若該函數未收到引數,則預設以time.time()作為引數),轉換成的形式為”星期 月份 當月號 時分秒 年份“。

範例程式碼如下:

import time
print(time.ctime())
print(time.ctime(34.56))

執行介面如下:

 時間格式化:

將時間以合理的方式展示出來

格式化:類似字串格式化,需要有展示模板

展示模板由特定的格式化控制符組成

(1)strftime()函數(將時間格式輸出為字串,與strptime函數互補)。strftime(格式,時間 )主要決定時間的輸出格式

strftime()函數借助時間格式控制符來輸出格式化的時間字串,其中%a,%d,%b等是time庫預定義的用於控制不同時間或時間成分的格式控制符。

time庫中常用的時間格式控制符及其說明如下所示

時間格式控制符說明
%Y四位數的年份,取值範圍為0001~9999,如1900
%m月份(01~12),例如10
%d月中的一天(01~31)例如:25
%B本地完整的月份名稱,比如January
%b本地簡化的月份名稱,比如Jan
%a本地簡化的週日期,Mon~Sun,例如Wed
%A本地完整週日期,”Monday~Sunday,例如Wednesday
%H24小時制小時數(00~23),例如:12
%l12小時制小時數(01~12),例如:7
%p上下午,取值為AM或PM
%M分鐘數(00~59),例如26
%S秒(00~59),例如26

strftime()函數有兩條引數,其中一個為tpl(格式化的模板字串引數,用來定義輸出效果),另一個為ts(是計算機內部時間型別變數)

格式如下:

strftime(tpl,ts)

範例程式碼如下:

import time
t=time.gmtime()
print(time.strftime("%Y-%m-%d %H:%M:%S",t))

執行介面如下:

(2)strptime()函數,strptime(字串,格式),主要將該格式的字串輸出為struct_time.

strptime(str,tpl)tpl(是格式化模板字串,用來定義輸入效果)

str是字串形式的時間值,所以他的格式為前面為字串,後面為字串的格式,然後輸出的格式為struct_time。

範例程式碼如下:

import time
print(time.strptime("2018-1-26 12:55:20",'%Y-%m-%d %H:%M:%S'))

執行介面如下所示:

在對時間的理解上,我們可以這樣認為:在計算機中為了表達時間,它其實只有一個浮點數,前面提到的這個浮點數是從1970年1月1日開始的,然後為了讓其他的程式能夠更好的處理這個浮點數,我們把它定義一個程式能夠理解的格式,這個格式就是用gmtime來獲取的struct_time格式。

struct_time格式,它包含了許多元素,這些元素的值都是通過浮點數來提供的。

反過來,我們也可以使用一個字串賦予一個時間給我們的strptime型別,然後並由這個型別進一步生成浮點數。

程式計時:

程式計時應用廣泛

程式計時指測量起止動作所經歷時間的過程

測量時間指的是能夠記錄時間的流逝: perf_counter()獲取計算機中CPU也就是中央處理器以其頻率執行的時鐘納秒計算,非常精確。

產生時間函數:sleep

讓程式去休眠或者產生一定的時間

perf_counter()返回一個CPU級別的精確時間計數值,單位為秒,由於這個計數值起點不確定,連續呼叫差值才有意義

範例程式碼如下:

import time
start=time.perf_counter()
end=time.perf_counter()
print(start)
print(end)
print(end-start)

執行介面如下: 

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

範例程式碼如下:

import time
print("開始")
time.sleep(3.3)
print("結束")   

執行介面如下:

 程式經過3.3秒後輸出結束。

總結

到此這篇關於python中time庫使用詳解的文章就介紹到這了,更多相關python time庫詳解內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com