本文目录导读:

在 Python 中,最常用的时间模块是 time(底层时间戳)和 datetime(面向对象的时间处理),以下是核心的案例和用法。
使用 time 模块(获取时间戳 / 格式化时间)
import time
# 1. 获取当前时间戳(秒)
timestamp = time.time()
print("时间戳:", timestamp) # 输出: 1735628800.123456
# 2. 获取结构化时间(本地时间)
local_time = time.localtime()
print("结构化时间:", local_time)
# 输出: time.struct_time(tm_year=2025, tm_mon=1, tm_mday=1, ...)
# 3. 格式化时间
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
print("格式化时间:", formatted_time) # 输出: 2025-01-01 12:00:00
# 4. 获取当前时间(简单方式)
current_time = time.ctime()
print("当前时间:", current_time) # 输出: Wed Jan 1 12:00:00 2025
# 5. 获取格林尼治时间
gmt_time = time.gmtime()
print("GMT时间:", time.strftime("%Y-%m-%d %H:%M:%S", gmt_time))
使用 datetime 模块(推荐,更易用)
from datetime import datetime, date, time
# 1. 获取当前日期时间
now = datetime.now()
print("当前日期时间:", now) # 输出: 2025-01-01 12:00:00.123456
# 2. 获取当前日期
today = date.today()
print("当前日期:", today) # 输出: 2025-01-01
# 3. 获取当前时间(时分秒微秒)
current_time = datetime.now().time()
print("当前时间:", current_time) # 输出: 12:00:00.123456
# 4. 格式化输出
formatted = now.strftime("%Y年%m月%d日 %H:%M:%S")
print("自定义格式:", formatted) # 输出: 2025年01月01日 12:00:00
# 5. 单独获取年月日时分秒
print("年:", now.year) # 2025
print("月:", now.month) # 1
print("日:", now.day) # 1
print("时:", now.hour) # 12
print("分:", now.minute) # 0
print("秒:", now.second) # 0
常用格式符号速查表
from datetime import datetime
now = datetime.now()
print("完整日期:", now.strftime("%Y-%m-%d")) # 2025-01-01
print("年月日时分秒:", now.strftime("%Y/%m/%d %H:%M:%S")) # 2025/01/01 12:00:00
print("12小时制:", now.strftime("%Y-%m-%d %I:%M:%S %p")) # 2025-01-01 12:00:00 PM
print("星期几:", now.strftime("%A")) # Wednesday
print("月份缩写:", now.strftime("%b")) # Jan
| 符号 | 含义 |
|---|---|
%Y |
4位年份 (2025) |
%y |
2位年份 (25) |
%m |
2位月份 (01-12) |
%d |
2位日期 (01-31) |
%H |
24小时制 (00-23) |
%I |
12小时制 (01-12) |
%M |
分钟 (00-59) |
%S |
秒 (00-59) |
%p |
AM/PM |
实际应用案例
from datetime import datetime
import time
# 案例1:计算代码执行时间
start = time.time()
time.sleep(1.5) # 模拟耗时操作
end = time.time()
print(f"耗时: {end - start:.2f}秒") # 输出: 耗时: 1.50秒
# 案例2:获取当前时间戳精确到毫秒
millisecond_timestamp = int(time.time() * 1000)
print("毫秒时间戳:", millisecond_timestamp)
# 案例3:文件命名
now = datetime.now()
filename = f"data_{now.strftime('%Y%m%d_%H%M%S')}.txt"
print("文件名:", filename) # 输出: data_20250101_120000.txt
快速选择指南
| 需求 | 推荐方案 |
|---|---|
| 获取时间戳 | time.time() |
| 简单格式化 | time.strftime() |
| 日期时间操作 | datetime 模块 |
| 日志/文件名 | datetime.now().strftime() |
| 计算耗时 | time.time() 差值 |
如果你有特定的时间获取需求,欢迎补充,我可以提供更精准的代码示例。