告别996!Python开发者效率翻倍的15个time模块骚操作
本文展示 Python time
模块的 15 个经典应用场景及完整代码示例,涵盖时间处理的核心功能,并附带详细说明和模拟执行结果。
1. 获取当前时间戳
import time
timestamp = time.time()
print(f"当前时间戳(秒): {timestamp}")
# 输出示例:当前时间戳(秒): 1717100000.123456
2. 时间戳转换为结构化时间(本地时区)
import time
local_time = time.localtime() # 当前本地时间
print(f"本地结构化时间: {local_time}")
# 输出示例:time.struct_time(tm_year=2024, tm_mon=5, tm_mday=30, tm_hour=14, ...)
3. 时间戳转换为UTC时间
import time
utc_time = time.gmtime() # 当前UTC时间
print(f"UTC结构化时间: {utc_time}")
# 输出示例:time.struct_time(tm_year=2024, tm_mon=5, tm_mday=30, tm_hour=6, ...)
4. 结构化时间转时间戳
import time
struct_time = time.localtime()
timestamp = time.mktime(struct_time)
print(f"转换后的时间戳: {timestamp}")
# 输出示例:转换后的时间戳: 1717100000.0
5. 格式化时间为可读字符串
import time
formatted = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print(f"格式化时间: {formatted}")
# 输出示例:格式化时间: 2024-05-30 14:30:45
6. 解析时间字符串为结构化时间
import time
time_str = "2024-05-30 14:30:45"
parsed = time.strptime(time_str, "%Y-%m-%d %H:%M:%S")
print(f"解析后的结构化时间: {parsed.tm_year}年{parsed.tm_mon}月")
# 输出示例:解析后的结构化时间: 2024年5月
7. 获取当前时间的简洁字符串
import time
readable = time.ctime()
print(f"可读时间: {readable}")
# 输出示例:可读时间: Thu May 30 14:30:45 2024
8. 程序暂停指定秒数
import time
print("开始执行...")
time.sleep(2.5) # 暂停2.5秒
print("已暂停2.5秒")
9. 高精度性能计时(计算代码执行时间)
import time
start = time.perf_counter()
sum(range(1_000_000)) # 模拟耗时操作
end = time.perf_counter()
print(f"耗时: {end - start:.6f}秒")
# 输出示例:耗时: 0.023456秒
10. 生成带时间戳的唯一文件名
import time
filename = f"data_{time.strftime('%Y%m%d_%H%M%S')}.csv"
print(f"生成文件名: {filename}")
# 输出示例:生成文件名: data_20240530_143045.csv
11. 计算两个时间点的时间差
import time
start = time.time()
time.sleep(1.5)
end = time.time()
print(f"时间差: {end - start:.2f}秒")
# 输出示例:时间差: 1.50秒
12. 实现倒计时功能
import time
def countdown(seconds):
for i in range(seconds, 0, -1):
print(f"剩余时间: {i}秒", end='\r')
time.sleep(1)
print("时间到!")
countdown(5) # 5秒倒计时
13. 定时任务(每小时执行一次)
import time
while True:
print(f"当前时间: {time.strftime('%H:%M:%S')}")
time.sleep(3600) # 暂停1小时
14. 时间戳单位转换(秒 → 毫秒)
import time
timestamp_ms = int(time.time() * 1000)
print(f"毫秒级时间戳: {timestamp_ms}")
# 输出示例:毫秒级时间戳: 1717100000123
15. 处理夏令时时间
import time
from datetime import datetime
import pytz
tz = pytz.timezone('US/Eastern') # 纽约时区(含夏令时)
now = datetime.now(tz)
timestamp = now.timestamp()
print(f"纽约当前时间: {now.strftime('%Y-%m-%d %H:%M:%S')}")
print(f"对应时间戳: {timestamp}")
# 输出示例:纽约当前时间: 2024-05-30 10:30:45
# 对应时间戳: 1717100000.0
代码说明与测试结果
场景 | 核心方法 | 测试结果示例 |
---|---|---|
获取时间戳 | time.time() | 浮点数(如 1717100000.123456 ) |
格式化时间字符串 | time.strftime() | 2024-05-30 14:30:45 |
高精度计时 | time.perf_counter() | 0.023456秒 |
带时间戳文件名 | strftime("%Y%m%d_%H%M%S") | data_20240530_143045.csv |
夏令时处理 | pytz + datetime | 纽约时间与时间戳动态匹配 |
扩展应用
- 网络请求超时监控:结合
requests
和time
模块实现超时重试逻辑。 - 日志时间分析:解析日志文件中的时间戳,统计请求频率。
- 自动化任务调度:使用
time.sleep()
实现定时备份或数据抓取。 - 用户行为时间限制:检查用户操作是否在允许的时间段内。
所有示例均可直接运行(需安装 pytz
),并支持根据实际需求扩展功能(如错误处理、日志记录)。