一、獲取當前時間戳
time.time()函數可以獲取當前的時間戳,以浮點數的形式返回。時間戳是自1970年1月1日以來的秒數,也稱為Unix時間戳。
import time now = time.time() print("當前時間戳為:", now)
輸出結果:當前時間戳為:1605661038.9961302
時間戳的作用有很多,比如在程序調試時可以用來記錄程序運行時間,或者計算程序運行的時間差。
二、計時器的實現
time模塊中提供了計時器的功能,可以用來測量程序和代碼塊的執行時間。
import time start_time = time.time() # 模擬程序執行時間 time.sleep(2) end_time = time.time() print("程序執行時間為:", end_time - start_time, "秒")
輸出結果:程序執行時間為: 2.0001180171966553 秒
利用計時器,我們可以評估和優化程序的性能,例如通過改變某些函數或算法來縮短程序的執行時間。
三、時間格式的轉換
time.time()函數返回的是Unix時間戳,如果需要將其轉換為人類可讀的時間格式,可以使用time.localtime()函數和time.strftime()函數。
import time # 獲取當前時間戳 timestamp = time.time() # 將時間戳轉換為本地時間 local_time = time.localtime(timestamp) # 將本地時間格式化為ISO格式(年-月-日 時:分:秒) iso_time = time.strftime('%Y-%m-%d %H:%M:%S', local_time) print("當前時間為:", iso_time)
輸出結果:當前時間為:2020-11-18 16:10:38
在實際開發中,我們會經常需要將時間格式轉換為人類可讀的形式,這種情況下,time函數庫中的函數就能派上用場了。
四、時間日期的加減計算
在實際開發中,我們經常需要對日期、時間進行加減計算,例如計算一個事件發生多久以前,或者計算某個時間點之後的一段時間。
import time # 獲取當前時間戳 now = time.time() # 計算5天前的時間 five_days_ago = now - 5*24*60*60 # 將時間戳轉換為本地時間 local_time = time.localtime(five_days_ago) # 將本地時間格式化為ISO格式(年-月-日 時:分:秒) iso_time = time.strftime('%Y-%m-%d %H:%M:%S', local_time) print("5天前的時間為:", iso_time)
輸出結果:5天前的時間為:2020-11-13 16:10:38
通過time.time()函數獲取當前時間戳後,我們可以進行簡單的加減計算,計算出需要的時間點。
五、多線程同步
在多線程應用中,有時需要對不同線程的執行時間進行同步控制,使線程間的執行時間保持同步狀態。
import time import threading def worker(): print(threading.current_thread().getName(), '開始執行') time.sleep(2) print(threading.current_thread().getName(), '執行完畢') start_time = time.time() threads = [] # 創建5個線程 for i in range(5): t = threading.Thread(target=worker) threads.append(t) # 啟動線程 for t in threads: t.start() # 等待線程執行完成 for t in threads: t.join() end_time = time.time() print('程序執行時間為:', end_time - start_time, '秒')
輸出結果:
Thread-1 開始執行
Thread-2 開始執行
Thread-3 開始執行
Thread-4 開始執行
Thread-5 開始執行
Thread-4 執行完畢
Thread-3 執行完畢
Thread-5 執行完畢
Thread-2 執行完畢
Thread-1 執行完畢
程序執行時間為: 2.003438949584961 秒
通過使用time.time()函數記錄程序執行的開始和結束時間,可以計算出程序執行的時間長度,從而進行多線程同步控制。
原創文章,作者:VLHFE,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/332149.html