在大數(shù)據(jù)時(shí)代,時(shí)間處理是涉及到各種數(shù)據(jù)處理場景中不可避免的問題。Python中的time()函數(shù)是一個(gè)有很多好處的模塊,它提供了一些處理時(shí)間的函數(shù)。我們可以使用time模塊在我們的程序中處理時(shí)間相關(guān)的任務(wù)。在本篇文章中,我們將探討time()函數(shù)的各種用法及其實(shí)現(xiàn)。
一、獲取當(dāng)前系統(tǒng)時(shí)間
獲取當(dāng)前系統(tǒng)時(shí)間是Unix時(shí)間戳的表示。一個(gè)Unix時(shí)間戳是一個(gè)從1970年1月1日午夜(綠wich標(biāo)準(zhǔn)時(shí)間/GMT)開始所經(jīng)過的秒數(shù)。我們使用time()函數(shù),返回一個(gè)float類型的時(shí)間戳。我們可以通過它取得當(dāng)前日期-時(shí)間。
import time
print("當(dāng)前系統(tǒng)時(shí)間為:", time.time())
輸出如下:
當(dāng)前系統(tǒng)時(shí)間為:1611803310.0679045
二、時(shí)間元組(timeTuple)
我們可以將Unix時(shí)間戳轉(zhuǎn)化為元組(struct_time),元組中的元素包含了年,月,日,時(shí),分,秒等等展示時(shí)間的格式,該元組稱之為時(shí)間元組。這樣做的好處是,可查詢?nèi)我鈺r(shí)刻的時(shí)間。我們可以通過time()函數(shù)將時(shí)間戳轉(zhuǎn)換為相應(yīng)的元組。
import time
print("當(dāng)前的時(shí)間元組為:", time.localtime(time.time()))
輸出如下:
當(dāng)前的時(shí)間元組為:time.struct_time(tm_year=2021, tm_mon=1, tm_mday=28, tm_hour=22, tm_min=28, tm_sec=23, tm_wday=3, tm_yday=28, tm_isdst=0)
三、獲取格式化日期
我們可以使用time()函數(shù)根據(jù)我們想要的格式獲取日期。strftime函數(shù)用來將一個(gè)struct_time變量處理為字符串。它的第一個(gè)參數(shù)是格式字符串,它定義了輸出字符串的格式。下面是一些常見的格式:
import time
# 格式化當(dāng)前時(shí)間
print("當(dāng)前格式化日期為:", time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
# 格式化指定時(shí)間戳
print("指定時(shí)間戳的格式化日期為:", time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(1611803310)))
輸出如下:
當(dāng)前格式化日期為: 2021-01-28 22:28:23
指定時(shí)間戳的格式化日期為: 2021-01-28 10:15:10
四、休眠函數(shù)sleep()
我們可以使用sleep()函數(shù)來掛起程序的執(zhí)行,一直到一個(gè)指定的時(shí)間表達(dá)式到達(dá)。這對(duì)于測試的目的是很有用的,或者是避免讓一個(gè)程序的資源過于占用CPU時(shí)間,也是非常必要的。下面我們使用sleep()函數(shù)延遲2秒。
import time
print("程序開始執(zhí)行...")
time.sleep(2)
print("程序結(jié)束執(zhí)行...")
輸出如下:
程序開始執(zhí)行...
程序結(jié)束執(zhí)行...
五、時(shí)間戳轉(zhuǎn)日期
我們還可以使用asctime()方法來將時(shí)間戳轉(zhuǎn)為字符串表示的日期與時(shí)間。下面是一個(gè)例子:
import time
# 獲取時(shí)間戳
timestamp = 1611803310
# 將時(shí)間戳轉(zhuǎn)為時(shí)間元組
time_tuple = time.localtime(timestamp)
# 將時(shí)間元組轉(zhuǎn)為格式化字符串
string_time = time.asctime(time_tuple)
print("時(shí)間戳轉(zhuǎn)為字符串表示的日期與時(shí)間為:", string_time)
輸出如下:
時(shí)間戳轉(zhuǎn)為字符串表示的日期與時(shí)間為: Thu Jan 28 22:15:10 2021
六、時(shí)間計(jì)算
我們還可以在程序中進(jìn)行一些時(shí)間計(jì)算。比如計(jì)算兩個(gè)時(shí)間戳之間相差的秒數(shù),分鐘數(shù)等等。我們可以使用減法計(jì)算兩個(gè)時(shí)間戳之間相差的時(shí)間。
import time
# 獲取兩個(gè)時(shí)間戳
start_timestamp = time.time()
end_timestamp = time.time() + 600
# 計(jì)算兩者之間相差的秒數(shù)
diff = end_timestamp - start_timestamp
print("相差的秒數(shù)為:", diff)
輸出如下:
相差的秒數(shù)為: 600.0102427005768
七、總結(jié)
最后,我們介紹了time()函數(shù)的一些常見用法。我們學(xué)會(huì)了如何獲取當(dāng)前系統(tǒng)時(shí)間,時(shí)間元組的概念,獲取格式化的日期,程序掛起,時(shí)間戳轉(zhuǎn)字符串,以及時(shí)間計(jì)算等等。學(xué)會(huì)了這些知識(shí)后,我們能夠更好地處理時(shí)間相關(guān)的任務(wù)。