在編程開發中,時間的概念很重要,而time函數就是處理時間相關問題的重要函數之一。本文將從多個方面對time函數用法作詳細闡述,包括時間戳相關、格式化輸出等問題,幫助你更好地掌握time函數。
一、時間戳相關
時間戳是指從1970年1月1日0時0分0秒起至現在的總毫秒數,它是時間處理中常用的一個重要概念。在Python中,可以通過time函數來獲取當前時間的時間戳:
import time timestamp = time.time() print('當前時間戳為:', timestamp)
上述代碼使用了time.time()函數來獲取當前時間的時間戳,並將其輸出到控制台。該函數返回的是一個浮點數類型的值。
程序輸出結果如下:
當前時間戳為: 1616426628.304026
除了上述方式獲取當前時間戳外,還可以使用time()傳入一個時間元組來獲取指定時間的時間戳,該函數的完整形式如下:
time.mktime(t)
其中,參數t是一個時間元組,表示需要轉化成時間戳的時間。可以通過time.struct_time類來生成一個時間元組,常用的方法如下:
import time #獲取當前時間 localtime = time.localtime(time.time()) print('當前日期:', localtime) #格式化輸出日期 print(time.strftime('%Y-%m-%d %H:%M:%S', localtime)) #將日期轉化成時間戳 timestamp = time.mktime(localtime) print('當前時間戳為:', timestamp)
上述代碼通過localtime()函數獲取了當前系統時間,並使用strftime()函數格式化輸出了日期字符串,最後使用mktime()函數將日期轉換成了時間戳。程序輸出結果如下:
當前日期:time.struct_time(tm_year=2021, tm_mon=3, tm_mday=22, tm_hour=10, tm_min=49, tm_sec=7, tm_wday=0, tm_yday=81, tm_isdst=0) 2021-03-22 10:49:07 當前時間戳為: 1616414947.0
可以看到,經過多次轉換,最終得到的時間戳結果與之前獲取當前時間戳的方法相同。
二、時間格式化輸出
除了獲取時間戳外,time函數還可以進行時間格式化輸出。Python提供了豐富的時間格式化方式,現在我們來看看常用的一些方式:
1. strftime格式化方式
strftime()函數可以將時間元組轉換為指定格式的字符串進行輸出,具體用法如下:
import time #獲取當前時間 localtime = time.localtime(time.time()) # 格式化日期 print(time.strftime('%Y-%m-%d %H:%M:%S', localtime)) print(time.strftime('%a %b %d %H:%M:%S %Y', localtime))
如上例所示,可以根據指定的格式化標籤來格式化輸出日期字符串。常用的標籤有:
- %Y:四位數的年份
- %m:兩位數的月份(01-12)
- %d:兩位數的日(01-31)
- %H:24小時制的小時(00-23)
- %M:兩位數的分鐘(00-59)
- %S:兩位數的秒(00-59)
- %a:本地化的縮寫星期幾名稱
- %A:本地化的完整星期幾名稱
- %b:本地化縮寫月份名稱
- %B:本地化完整月份名稱
- %c:本地化的日期和時間表示法
- %j:一年中的第幾天(001-366)
- %p:本地化的AM或PM標記
- %U:當年的第幾周,從第一個星期日開始算(00-53)
- %w:星期幾的數字表示(0-6),0表示周日
- %W:當年的第幾周,從第一個星期一開始算(00-53)
- %x:本地化的日期表示法
- %X:本地化的時間表示法
- %y:兩位數的年份表示(00-99)
- %Z:本地化時區名稱
- %%:文本%
上述代碼中輸出了兩個日期字符串,第一個是標準日期格式,第二個是一般情況下使用的日期格式。程序輸出結果如下:
2021-03-22 15:47:16 Mon Mar 22 15:47:16 2021
2. strptime格式化方式
strptime()函數與strftime()函數相反,可以將字符串格式的日期轉換成對應的時間元組。常用的格式化標籤與strftime()函數基本相同:
import time #將字符串格式的日期時間轉化成時間元組 str_time = '2021-3-22 20:30:00' time_tuple = time.strptime(str_time, '%Y-%m-%d %H:%M:%S') print(time_tuple)
上述代碼將字符串形式的日期轉換成時間元組,輸出結果如下:
time.struct_time(tm_year=2021, tm_mon=3, tm_mday=22, tm_hour=20, tm_min=30, tm_sec=0, tm_wday=0, tm_yday=81, tm_isdst=-1)
三、其他時間函數
除了上述提到的time()、localtime()、gmtime()、mktime()、strftime()、strptime()等常見的函數外,time模塊還提供了一些其他的時間處理函數。
1. sleep()函數
sleep()函數用於暫停程序的執行,讓程序等待一定的時間之後再繼續執行。通常情況下,sleep()函數接收一個浮點數或整數類型的參數,表示需要暫停的時間(單位為秒)。下面是一個簡單的例子:
import time print('開始執行') time.sleep(2) print('等待2秒後,程序繼續執行')
上述代碼中,程序在輸出“開始執行”之後,使用sleep函數暫停了2秒,等待時間到達之後再輸出“等待2秒後,程序繼續執行”。程序輸出結果如下:
開始執行 等待2秒後,程序繼續執行
2. clock()函數
clock()函數用於計算程序執行的時間。在Python3.3之後,clock()函數已經被移除,建議使用使用perf_counter()或process_time()函數替代,如下:
import time #獲取程序開始執行的時間 t0 = time.perf_counter() #執行程序 for i in range(100000): pass # 獲取程序結束執行的時間 t1 = time.perf_counter() print('程序執行的時間為:', t1 - t0)
上述代碼中,我們使用了perf_counter()函數獲取了程序開始執行的時間和結束執行的時間,並計算出了程序執行的時間。程序輸出結果如下:
程序執行的時間為:0.001331413999983385
結語
本文從時間戳、時間格式化輸出和其他時間函數三個方面詳細闡述了time函數的用法。time函數是Python中處理時間相關問題的重要工具之一,熟練掌握其用法能帶來更加高效的編程體驗。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/198666.html