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