Python基礎時間庫——time


(1).介紹

  在Python中包含了若干個能夠處理時間的庫,而time庫是最基本的一個,是Python中處理時間的標准庫。time庫能夠表達計算機時間,提供獲取系統時間並格式化輸出的方法,提供系統級精確計時功能(可以用於程序性能分析)。

  time庫包含三類函數,以下介紹常用的函數:

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

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

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

(2).時間獲取

函數 描述
time()

獲取當前時間戳,即當前系統內表示時間的一個浮點數。例如:

>>> import time
>>> time.time()
1584341528.5690455

 ctime()

獲取當前時間,並返回一個以人類可讀方式的字符串。例如:

>>> import time
>>> time.ctime()
'Mon Mar 16 14:59:35 2020'

 gmtime()

獲取當前時間,並返回計算機可處理的時間格式。例如:

>>> import time
>>> time.gmtime()
time.struct_time(tm_year=2020, tm_mon=3, tm_mday=16, tm_hour=7, tm_min=6, tm_sec=2, tm_wday=0, tm_yday=76, tm_isdst=0)

  時間戳是從1970年1月1日0:00開始,到當前為止的一個以秒為單位的數值。

(3).時間格式化

  時間格式化是將時間以合適方式展示出來的方法,類似於字符串的格式化,展示模板由特定格式化控制符組成。

函數 描述
strftime(tpl,ts)

tpl是格式化模板字符串,用來定義輸出效果;ts是系統內部時間類型變量。例如:

>>> import time
>>> t=time.gmtime()
>>> time.strftime("%Y-%m-%d %H:%M:%S",t)
'2020-03-16 07:22:52'

strptime(str,tpl)

 str是字符串形式的時間值;tpl是格式化模板字符串,用來定義輸入效果。例如:

>>> import time
>>> timeStr='2018-01-26 12:55:20'
>>> 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=20, tm_wday=4, tm_yday=26, tm_isdst=-1)

  格式化字符串

格式化字符串 日期/時間說明 取值范圍
%Y 年份 0000~9999
%m 月份(數字) 01~12
%B 月份(英文全稱) January~December
%b 月份(英文縮寫) Jan~Dec
%d 日期 01~31
%A 星期(英文全稱) Monday~Sunday
%a 星期(英文縮寫) Mon~Sun
%H 小時(24小時制) 00~23
%I 小時(12小時制) 01~12
%p 上/下午 AM,PM
%M 分鍾 00~59
%S 00~59

(4).程序計時

  程序計時指測量起止動作所經歷時間的過程,主要包括測量時間和產生時間兩部分。time庫提供了一個非常精准的測量時間函數perf_counter(),該函數可以獲取CPU以其頻率運行的時鍾,這個時間往往是以納秒來計算的,所以這樣獲取的時間非常精准。另外產生時間函數sleep(),它可以讓程序休眠或產生一段時間。

函數 描述
perf_counter()

返回一個CPU級別的精確時間計數值,單位為秒。由於這個計數值起點不確定,連續調用求差值才有意義。例如:

>>> import time
>>> startTime=time.perf_counter()
>>> print(startTime)
9.621589306950508e-07
>>> endTime=time.perf_counter()
>>> print(endTime)
41.478044816080114
>>> endTime-startTime
41.478043853921186

 sleep(s)

 s為休眠時間,單位秒,可以是浮點數。例如:

>>> import time

>>> def wait():
time.sleep(3.3)


>>> wait()  #程序會等待3.3秒才輸出


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM