概述
????????在上一節(jié),我們介紹了Python的math模塊,包括:math模塊中一些常用的屬性和函數(shù)。在這一節(jié),我們將介紹Python的time模塊。time模塊是用于處理時(shí)間數(shù)據(jù)的庫(kù),它提供了各種功能來(lái)獲取、表達(dá)和轉(zhuǎn)換時(shí)間。該模塊主要包含的功能如下:
????????時(shí)間獲取:可以獲取當(dāng)前時(shí)間,包括:當(dāng)前的系統(tǒng)時(shí)間、網(wǎng)絡(luò)時(shí)間等。
????????時(shí)間格式化:可以將時(shí)間以各種格式進(jìn)行輸出,包括:時(shí)間戳、時(shí)間元組、格式化時(shí)間等。
????????時(shí)間轉(zhuǎn)換:可以將時(shí)間從一種格式轉(zhuǎn)換為另一種格式。
????????計(jì)時(shí)和性能分析:可以用來(lái)進(jìn)行計(jì)時(shí)和性能分析,比如:測(cè)量代碼塊的運(yùn)行時(shí)間等。
????????下面,我們將逐一介紹time模塊中一些常用的屬性和函數(shù)。
time.time()函數(shù)
????????time.time()函數(shù)會(huì)返回當(dāng)前時(shí)間的時(shí)間戳,表示從1970年1月1日00:00:00開(kāi)始到現(xiàn)在的秒數(shù)。在Python中,time.time()函數(shù)通常用于計(jì)算時(shí)間差、定時(shí)任務(wù)和其他與時(shí)間相關(guān)的操作。比如:可以使用time.time()來(lái)獲取當(dāng)前時(shí)間的時(shí)間戳,并將其與另一個(gè)時(shí)間戳進(jìn)行比較,以計(jì)算兩個(gè)時(shí)間點(diǎn)之間的時(shí)間差。
import time
# 獲取當(dāng)前時(shí)間的時(shí)間戳
current_time1 = time.time()
# 輸出:1694938988.1193678
print(current_time1)
# 等待一段時(shí)間
time.sleep(3)
# 再次獲取當(dāng)前時(shí)間的時(shí)間戳
current_time2 = time.time()
# 輸出:1694938991.120983
print(current_time2)
# 計(jì)算兩個(gè)時(shí)間戳之間的時(shí)間差,單位為秒
time_difference = current_time2 - current_time1
# 輸出:3.001615047454834
print(time_difference)
time.sleep(seconds)函數(shù)
????????time.sleep(seconds)函數(shù)讓程序暫停指定的秒數(shù)。這個(gè)函數(shù)接受一個(gè)浮點(diǎn)數(shù)作為參數(shù),表示暫停的秒數(shù)。需要注意的是:time.sleep()函數(shù)會(huì)阻塞當(dāng)前線程的執(zhí)行,因此在多線程環(huán)境中使用時(shí)需要謹(jǐn)慎。
import time
# 輸出:Begin
print('Begin')
time.sleep(3)
# 過(guò)6秒后,輸出:End
print('End')
time.localtime()函數(shù)
????????time.localtime()函數(shù)返回一個(gè)包含當(dāng)前本地時(shí)間的time.struct_time對(duì)象。time.struct_time是一個(gè)命名元組,包含以下9個(gè)元素,分別為:
????????tm_year:年份,比如:2023。
????????tm_mon:月份,范圍為1-12。
????????tm_mday:一個(gè)月中的第幾天,范圍為1-31。
????????tm_hour:小時(shí),范圍為0-23。
????????tm_min:分鐘,范圍為0-59。
????????tm_sec:秒,范圍為0-61,60和61用于閏秒。
????????tm_wday:一周的第幾天,范圍為0-6,0表示星期一。
????????tm_yday:一年中的第幾天,范圍為1-366。
????????tm_isdst:夏令時(shí)標(biāo)記,取值為-1、0、1。
import time
cur_time = time.localtime()
print("年份:", cur_time.tm_year)
print("月份:", cur_time.tm_mon)
print("日期:", cur_time.tm_mday)
print("小時(shí):", cur_time.tm_hour)
print("分鐘:", cur_time.tm_min)
print("秒數(shù):", cur_time.tm_sec)
time.struct_time()函數(shù)
????????time.struct_time()函數(shù)創(chuàng)建一個(gè)time.struct_time對(duì)象,該對(duì)象表示一個(gè)本地時(shí)間。。
import time
# 創(chuàng)建一個(gè)time.struct_time對(duì)象
t = time.struct_time((2023, 9, 17, 16, 45, 36, 0, 0, 0))
# 輸出時(shí)間信息
print("年份:", t.tm_year)
print("月份:", t.tm_mon)
print("日期:", t.tm_mday)
print("小時(shí):", t.tm_hour)
print("分鐘:", t.tm_min)
print("秒數(shù):", t.tm_sec)
time.mktime(t)函數(shù)
????????time.mktime(t)函數(shù)將一個(gè)time.struct_time對(duì)象轉(zhuǎn)化為時(shí)間戳。該函數(shù)接受一個(gè)time.struct_time對(duì)象作為參數(shù),該對(duì)象表示一個(gè)本地時(shí)間。time.struct_time對(duì)象包含年、月、日、時(shí)、分、秒等信息。time.mktime(t)將這些信息轉(zhuǎn)換為自Epoch(1970年1月1日 00:00:00 UTC)以來(lái)的秒數(shù),并返回一個(gè)浮點(diǎn)數(shù)。
import time
# 創(chuàng)建一個(gè)time.struct_time對(duì)象
t = time.struct_time((2023, 9, 17, 16, 45, 36, 0, 0, 0))
# 將time.struct_time對(duì)象轉(zhuǎn)換為時(shí)間戳,輸出:1694940336.0
print(time.mktime(t))
time.asctime([t])函數(shù)
????????time.asctime([t])函數(shù)將一個(gè)time.struct_time對(duì)象轉(zhuǎn)化為字符串格式的時(shí)間。這個(gè)函數(shù)接受一個(gè)可選的 time.struct_time對(duì)象作為參數(shù),如果不提供參數(shù),則默認(rèn)使用當(dāng)前本地時(shí)間。
import time
time_str = time.asctime()
# 輸出:Sun Sep 17 16:55:26 2023
print(time_str)
time.ctime([seconds])函數(shù)
????????time.ctime([seconds])函數(shù)將一個(gè)time.struct_time對(duì)象轉(zhuǎn)化為字符串格式的時(shí)間,與asctime()函數(shù)功能相同。這個(gè)函數(shù)接受一個(gè)可選的參數(shù)seconds,如果不提供參數(shù),則默認(rèn)使用當(dāng)前本地時(shí)間。
import time
time_str = time.ctime()
# 輸出:Sun Sep 17 16:57:12 2023
print(time_str)
time.gmtime([seconds])函數(shù)
????????time.gmtime([seconds])函數(shù)返回一個(gè)包含當(dāng)前UTC時(shí)間的time.struct_time對(duì)象。這個(gè)函數(shù)接受一個(gè)可選的參數(shù)seconds,如果不提供參數(shù),則默認(rèn)使用當(dāng)前UTC時(shí)間。
import time
utc_time = time.gmtime()
print("年份:", utc_time.tm_year)
print("月份:", utc_time.tm_mon)
print("日期:", utc_time.tm_mday)
print("小時(shí):", utc_time.tm_hour)
print("分鐘:", utc_time.tm_min)
print("秒數(shù):", utc_time.tm_sec)
time.localtime([seconds])函數(shù)
????????time.localtime([seconds])函數(shù)返回一個(gè)包含當(dāng)前本地時(shí)間的time.struct_time對(duì)象,與gmtime()相反,本函數(shù)返回的是本地時(shí)間而不是UTC時(shí)間。
import time
local_time = time.localtime()
print("年份:", local_time.tm_year)
print("月份:", local_time.tm_mon)
print("日期:", local_time.tm_mday)
print("小時(shí):", local_time.tm_hour)
print("分鐘:", local_time.tm_min)
print("秒數(shù):", local_time.tm_sec)
time.strftime(format[, t])函數(shù)
????????time.strftime(format[, t])函數(shù)將一個(gè)time.struct_time對(duì)象按照指定的格式轉(zhuǎn)化為字符串。該函數(shù)接受如下兩個(gè)參數(shù)。
????????format:一個(gè)字符串,指定了輸出字符串的格式。格式字符串可以包含一些特殊的指令,用于插入日期和時(shí)間的不同組成部分。比如:%Y表示四位數(shù)的年份,%y表示兩位數(shù)的年份,%m表示兩位數(shù)的月份,%d表示兩位數(shù)的日期,%H表示24小時(shí)制的小時(shí)數(shù),%I表示12小時(shí)制的小時(shí)數(shù),%M表示分鐘數(shù),%S表示秒數(shù)等。
????????t:可選參數(shù),一個(gè)時(shí)間對(duì)象。如果未提供此參數(shù),則默認(rèn)為當(dāng)前時(shí)間。
import time
cur_time = time.strftime("%Y-%m-%d %H:%M:%S")
# 輸出:2023-09-17 17:07:21
print(cur_time)
time.strptime(string[, format])函數(shù)
????????time.strptime(string[, format])函數(shù)將一個(gè)字符串解析為time.struct_time對(duì)象。該函數(shù)接受如下兩個(gè)參數(shù)。
????????string:要解析的時(shí)間字符串。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-721735.html
????????format:可選參數(shù),指定了字符串的格式。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-721735.html
import time
time_str = "2023-09-17 17:30:45"
format_str = "%Y-%m-%d %H:%M:%S"
time_obj = time.strptime(time_str, format_str)
# 輸出:time.struct_time(tm_year=2023, tm_mon=9, tm_mday=17, tm_hour=17,
# tm_min=30, tm_sec=45, tm_wday=6, tm_yday=260, tm_isdst=-1)
print(time_obj)
到了這里,關(guān)于20 Python的time模塊的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!