Python的time模塊一些常用功能(各種與時(shí)間相關(guān)的函數(shù))
Python的time
模塊提供了各種與時(shí)間相關(guān)的函數(shù),包括獲取當(dāng)前時(shí)間、處理時(shí)間間隔、執(zhí)行時(shí)間測量等。以下是對time
模塊中一些常用功能的詳細(xì)介紹、用法、常見用法以及示例代碼和運(yùn)行結(jié)果。
1. 獲取當(dāng)前時(shí)間
time.time()
: 返回自紀(jì)元(1970年1月1日00:00:00 UTC)以來的秒數(shù),通常稱為Unix時(shí)間戳。time.localtime()
: 返回一個(gè)表示本地時(shí)間的time.struct_time
對象。time.gmtime()
: 返回一個(gè)表示協(xié)調(diào)世界時(shí)(UTC)的time.struct_time
對象。
import time # 獲取當(dāng)前時(shí)間戳 timestamp = time.time() print("當(dāng)前時(shí)間戳:", timestamp) # 獲取本地時(shí)間 local_time = time.localtime() print("本地時(shí)間:", local_time) # 獲取UTC時(shí)間 utc_time = time.gmtime() print("UTC時(shí)間:", utc_time)
運(yùn)行結(jié)果(取決于你的時(shí)區(qū)和當(dāng)前時(shí)間):
當(dāng)前時(shí)間戳: 1715833304.1631322
本地時(shí)間: time.struct_time(tm_year=2024, tm_mon=5, tm_mday=16, tm_hour=12, tm_min=21, tm_sec=44, tm_wday=3, tm_yday=137, tm_isdst=0)
UTC時(shí)間: time.struct_time(tm_year=2024, tm_mon=5, tm_mday=16, tm_hour=4, tm_min=21, tm_sec=44, tm_wday=3, tm_yday=137, tm_isdst=0)
2. 時(shí)間格式化
time.strftime(format, time_tuple)
: 將time.struct_time
對象格式化為字符串。time.strptime(string, format)
: 將字符串解析為time.struct_time
對象。
import time # 格式化本地時(shí)間 formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) print("格式化后的本地時(shí)間:", formatted_time) # 解析時(shí)間字符串 parsed_time = time.strptime("2021-09-10 10:22:47", "%Y-%m-%d %H:%M:%S") print("解析后的時(shí)間:", parsed_time)
運(yùn)行結(jié)果:
格式化后的本地時(shí)間: 2024-05-16 12:22:02
解析后的時(shí)間: time.struct_time(tm_year=2021, tm_mon=9, tm_mday=10, tm_hour=10, tm_min=22, tm_sec=47, tm_wday=4, tm_yday=253, tm_isdst=-1)
3. 延時(shí)執(zhí)行
time.sleep(seconds)
: 使程序暫停指定的秒數(shù)。
import time print("開始休眠...") time.sleep(2) # 休眠2秒 print("休眠結(jié)束!")
運(yùn)行結(jié)果:
開始休眠...
(等待2秒)
休眠結(jié)束!
4. 時(shí)間戳運(yùn)算
由于時(shí)間戳是浮點(diǎn)數(shù),可以直接進(jìn)行加減運(yùn)算來表示時(shí)間間隔。
import time # 獲取當(dāng)前時(shí)間戳 now = time.time() # 10秒后 future = now + 10 print("10秒后的時(shí)間戳:", future) # 10秒前 past = now - 10 print("10秒前的時(shí)間戳:", past)
運(yùn)行結(jié)果:
10秒后的時(shí)間戳: 1715833358.9650567
10秒前的時(shí)間戳: 1715833338.9650567
5. 計(jì)算代碼執(zhí)行時(shí)間
你可以使用 time.time()
來計(jì)算一段代碼的執(zhí)行時(shí)間。
import time start_time = time.time() # 這里是你要計(jì)算執(zhí)行時(shí)間的代碼 for i in range(1000000): pass end_time = time.time() execution_time = end_time - start_time print(f"代碼執(zhí)行時(shí)間: {execution_time} 秒")
運(yùn)行結(jié)果:
代碼執(zhí)行時(shí)間: 0.03800845146179199 秒
6. 轉(zhuǎn)換為指定時(shí)區(qū)的時(shí)間
Python的 time
模塊本身并不直接支持時(shí)區(qū)轉(zhuǎn)換,但你可以使用 pytz
庫或Python 3.9+中的 zoneinfo
模塊來做到這一點(diǎn)。以下是一個(gè)使用 pytz
的示例:
import time import pytz from datetime import datetime # 獲取當(dāng)前UTC時(shí)間 utc_now = datetime.utcnow() print("UTC時(shí)間:", utc_now) # 轉(zhuǎn)換為紐約時(shí)間(EST/EDT) new_york_tz = pytz.timezone('America/New_York') new_york_time = utc_now.astimezone(new_york_tz) print("紐約時(shí)間:", new_york_time)
運(yùn)行結(jié)果:
UTC時(shí)間: 2024-05-16 04:24:15.237127
紐約時(shí)間: 2024-05-15 16:24:15.237127-04:00
注意:在運(yùn)行上述代碼之前,你需要先安裝 pytz
庫,可以使用 pip install pytz
命令進(jìn)行安裝。Python第三方庫的安裝和導(dǎo)入
7. 定時(shí)器(每隔一定時(shí)間執(zhí)行一次任務(wù))
你可以使用 time.sleep()
和一個(gè)循環(huán)來創(chuàng)建一個(gè)簡單的定時(shí)器。
import time def timer_task(): print("定時(shí)任務(wù)執(zhí)行中...") while True: timer_task() time.sleep(5) # 每5秒執(zhí)行一次 # 注意:上面的代碼會(huì)無限循環(huán),你可能需要一種方式來中斷它,比如設(shè)置一個(gè)標(biāo)志變量或使用try/except捕獲KeyboardInterrupt異常。
8. 獲取時(shí)間戳的日期部分
如果你有一個(gè)時(shí)間戳并且只想獲取其日期部分,你可以將時(shí)間戳轉(zhuǎn)換為 datetime
對象,然后提取日期。
import time from datetime import datetime timestamp = time.time() dt_object = datetime.fromtimestamp(timestamp) date_only = dt_object.date() print("日期部分:", date_only)
運(yùn)行結(jié)果:
日期部分: 2024-05-16
這些示例展示了 time
模塊在Python中的一些常見用法。根據(jù)你的具體需求,你可能還需要結(jié)合其他庫或模塊來實(shí)現(xiàn)更復(fù)雜的時(shí)間處理任務(wù)。
注意:這里只是簡單地對時(shí)間戳進(jìn)行了加減,但結(jié)果仍然是時(shí)間戳,而不是人類可讀的日期時(shí)間格式。如果你需要將其轉(zhuǎn)換為可讀的格式,可以使用time.localtime()
或time.gmtime()
結(jié)合time.strftime()
進(jìn)行格式化。
到此這篇關(guān)于Python的time模塊——各種與時(shí)間相關(guān)的函數(shù)的文章就介紹到這了,更多相關(guān)Python time模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python時(shí)間處理模塊time和datetime詳解
- Python基本知識(shí)之datetime模塊詳解
- python使用datetime模塊處理日期時(shí)間及常用功能詳解
- 詳解Python中的時(shí)間格式的讀取與轉(zhuǎn)換(time模塊)
- Python?time模塊時(shí)間獲取和轉(zhuǎn)換方法
- python工具模塊介紹之time?時(shí)間訪問和轉(zhuǎn)換的示例代碼
- Python中的Pandas?時(shí)間函數(shù)?time?、datetime?模塊和時(shí)間處理基礎(chǔ)講解
- Python timeit模塊原理及使用方法
- python 常用日期處理-- datetime 模塊的使用
相關(guān)文章
keras.layers.Layer中無法定義name的問題及解決
這篇文章主要介紹了keras.layers.Layer中無法定義name的問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02python時(shí)間整形轉(zhuǎn)標(biāo)準(zhǔn)格式的示例分享
這篇文章主要介紹了python時(shí)間整形轉(zhuǎn)標(biāo)準(zhǔn)格式的示例,需要的朋友可以參考下2014-02-02解決python父線程關(guān)閉后子線程不關(guān)閉問題
這篇文章主要介紹了解決python父線程關(guān)閉后子線程不關(guān)閉問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04Python3爬蟲之自動(dòng)查詢天氣并實(shí)現(xiàn)語音播報(bào)
這篇文章主要介紹了Python3爬蟲之自動(dòng)查詢天氣并實(shí)現(xiàn)語音播報(bào),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02Python導(dǎo)入引用其他文件的函數(shù)實(shí)戰(zhàn)案例(推薦!)
這篇文章主要給大家介紹了關(guān)于Python導(dǎo)入引用其他文件的函數(shù)的相關(guān)資料,文中通過代碼以及圖文介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-01-01Python selenium模擬手動(dòng)操作實(shí)現(xiàn)無人值守刷積分功能
這篇文章主要介紹了Python selenium模擬手動(dòng)操作達(dá)到無人值守刷積分目的,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05使用python根據(jù)端口號(hào)關(guān)閉進(jìn)程的方法
今天小編就為大家分享一篇使用python根據(jù)端口號(hào)關(guān)閉進(jìn)程的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11Python?虛擬機(jī)字典dict內(nèi)存優(yōu)化方法解析
這篇文章主要為大家介紹了Python?虛擬機(jī)字典dict內(nèi)存優(yōu)化方法解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03