# Python time模塊怎么用
## 目錄
1. [time模塊概述](#1-time模塊概述)
2. [時間表示形式](#2-時間表示形式)
- [時間戳](#21-時間戳)
- [結構化時間](#22-結構化時間)
- [格式化時間](#23-格式化時間)
3. [常用函數詳解](#3-常用函數詳解)
- [time()](#31-time)
- [localtime()/gmtime()](#32-localtimegmtime)
- [mktime()](#33-mktime)
- [strftime()/strptime()](#34-strftimestrptime)
- [sleep()](#35-sleep)
- [perf_counter()](#36-perf_counter)
4. [實際應用場景](#4-實際應用場景)
- [計時器功能](#41-計時器功能)
- [日志時間戳](#42-日志時間戳)
- [延時操作](#43-延時操作)
5. [注意事項](#5-注意事項)
6. [總結](#6-總結)
## 1. time模塊概述
Python的`time`模塊是處理時間相關操作的核心模塊之一,它提供了各種時間相關的函數,可以用于獲取當前時間、時間格式化、時間計算等操作。該模塊主要基于C庫函數實現,因此在不同平臺上行為基本一致。
```python
import time
時間戳(Timestamp)表示從1970年1月1日00:00:00(UTC)開始計算的秒數(浮點數)。
timestamp = time.time()
print(timestamp) # 輸出類似:1634567890.123456
結構化時間(struct_time)是一個包含9個元素的元組:
time.struct_time((
tm_year, # 年(如2023)
tm_mon, # 月(1-12)
tm_mday, # 日(1-31)
tm_hour, # 時(0-23)
tm_min, # 分(0-59)
tm_sec, # 秒(0-61,考慮閏秒)
tm_wday, # 周幾(0-6,0是周一)
tm_yday, # 年中第幾天(1-366)
tm_isdst # 夏令時標志(-1/0/1)
))
可讀性更好的字符串時間表示:
formatted_time = "2023-10-20 14:30:00"
獲取當前時間戳(浮點數)
current = time.time()
print(f"當前時間戳:{current}")
將時間戳轉換為本地時間/UTC時間
local_time = time.localtime() # 不傳參數則使用當前時間
utc_time = time.gmtime()
print("本地時間:", local_time)
print("UTC時間:", utc_time)
將struct_time轉換為時間戳
struct_time = time.localtime()
timestamp = time.mktime(struct_time)
print("轉換后的時間戳:", timestamp)
時間格式化與解析
# 時間轉字符串
formatted = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print("格式化時間:", formatted)
# 字符串轉時間
parsed_time = time.strptime("2023-10-20", "%Y-%m-%d")
print("解析后的時間:", parsed_time)
常用格式符號:
符號 | 含義 |
---|---|
%Y | 四位年份 |
%m | 月份(01-12) |
%d | 日(01-31) |
%H | 24小時制小時 |
%M | 分鐘(00-59) |
%S | 秒(00-61) |
%A | 完整的星期名稱 |
%B | 完整的月份名稱 |
暫停程序執行指定秒數
print("開始等待...")
time.sleep(2.5) # 浮點數支持毫秒級精度
print("等待結束")
高精度計時器(用于性能測量)
start = time.perf_counter()
# 執行一些操作
time.sleep(1)
end = time.perf_counter()
print(f"耗時:{end - start:.6f}秒")
def countdown(seconds):
while seconds > 0:
print(f"剩余時間:{seconds}秒")
time.sleep(1)
seconds -= 1
print("時間到!")
countdown(5)
def log(message):
timestamp = time.strftime("[%Y-%m-%d %H:%M:%S]")
print(f"{timestamp} {message}")
log("系統啟動")
time.sleep(1)
log("執行任務")
def fetch_data():
print("開始獲取數據...")
time.sleep(3) # 模擬網絡請求延遲
print("數據獲取完成")
fetch_data()
localtime()
返回的是本地時間,gmtime()
返回UTC時間time()
通常精度約15ms,Unix系統更高strftime()
在某些平臺可能不是線程安全的Python的time模塊提供了豐富的時間處理功能:
掌握time模塊的使用,可以高效處理大多數時間相關的編程需求。對于更復雜的時間操作(如時區轉換),建議結合datetime模塊一起使用。
# 綜合示例:計算函數執行時間
def measure_time(func):
def wrapper(*args, **kwargs):
start = time.perf_counter()
result = func(*args, **kwargs)
end = time.perf_counter()
print(f"函數 {func.__name__} 執行時間:{end - start:.6f}秒")
return result
return wrapper
@measure_time
def example_function():
time.sleep(1.5)
example_function()
通過本文的學習,你應該已經掌握了Python time模塊的核心功能和使用方法。在實際開發中,根據具體需求選擇合適的時間函數和表示形式,可以大大提高開發效率。 “`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。