Python常用标准库之time模块

大神,哪位知道,Python常用标准库之time模块
最新回答
战天傲刃

2026-10-23 17:12:30

Python 的 time 模块是处理时间相关功能的常用标准库,主要涉及时间戳、格式化时间字符串以及时间元组(struct_time)之间的转换。以下是其核心方法及功能总结:

一、核心方法详解1. 获取当前时间戳
  • time.time()返回当前时间的时间戳(浮点数,单位为秒),表示从 1970-01-01 00:00:00 UTC 到现在的秒数。用途:计算代码运行时间、记录事件发生时间。示例:import timestart = time.time()# 模拟耗时操作time.sleep(1)end = time.time()print(f"耗时: {end - start:.2f}秒")
2. 时间戳转本地时间元组
  • time.localtime([timestamp])将时间戳转换为当前时区的 struct_time(包含年、月、日等9个属性)。若未提供时间戳,默认使用当前时间。示例:local_time = time.localtime(1598601684.2067122)print(local_time.tm_year) # 输出年份:2020
3. 时间戳转UTC时间元组
  • time.gmtime([timestamp])将时间戳转换为 UTC 时区 的 struct_time,适用于需要统一时区的场景。示例:utc_time = time.gmtime(1598601684.2067122)print(utc_time.tm_hour) # 输出UTC小时(可能比本地时间少8小时)
4. 时间元组转时间戳
  • time.mktime(struct_time)将本地时间的 struct_time 转换回时间戳,是 localtime() 的逆操作。示例:time_tuple = time.struct_time((2020, 8, 28, 15, 20, 28, 4, 241, 0))timestamp = time.mktime(time_tuple)print(int(timestamp)) # 输出:1598601628
5. 线程休眠
  • time.sleep(seconds)暂停当前线程执行指定秒数,常用于控制循环频率或模拟延迟。示例:print("开始")time.sleep(2) # 休眠2秒print("结束")
6. 时间元组转字符串
  • time.asctime(struct_time)将 struct_time 转换为固定格式的字符串(如 Fri Aug 28 16:23:17 2020)。示例:

    time_str = time.asctime(time.localtime())print(time_str) # 输出当前时间的字符串形式
  • time.ctime([timestamp])将时间戳转换为类似 asctime() 的字符串,默认使用当前时间戳。示例:

    print(time.ctime(1598601684.2067122)) # 输出:Fri Aug 28 07:21:24 2020(UTC时间)
7. 自定义时间格式化
  • time.strftime(format, struct_time)将 struct_time 格式化为自定义字符串,支持多种占位符(如 %Y 表示年份)。常用格式符:

    %Y:四位年份(如 2020)

    %m:两位月份(01-12)

    %d:两位日期(01-31)

    %H:%M:%S:24小时制时间(如 15:20:28)示例:

    formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())print(formatted_time) # 输出:2023-10-05 14:30:00
  • time.strptime(string, format)将格式化字符串解析为 struct_time,是 strftime() 的逆操作。示例:

    time_tuple = time.strptime("2020-08-28", "%Y-%m-%d")print(time_tuple.tm_year) # 输出:2020
二、关键概念
  1. 时间戳(Timestamp)从 1970-01-01 00:00:00 UTC 开始的秒数,用于跨平台时间计算,但需注意 2038年溢出问题(32位系统)。

  2. UTC 与本地时间

    UTC 是世界标准时间,中国为 UTC+8。

    localtime() 返回本地时区时间,gmtime() 返回 UTC 时间。

  3. struct_time 结构包含9个属性:tm_year、tm_mon(1-12)、tm_mday、tm_hour、tm_min、tm_sec、tm_wday(0-6,周日为0)、tm_yday(1-366)、tm_isdst(夏令时标志)。

三、应用场景
  • 性能测试:用 time.time() 计算代码执行时间。
  • 日志记录:通过 strftime() 生成带时间戳的日志文件名。
  • 定时任务:结合 sleep() 实现简单轮询或延迟执行。
  • 时间解析:使用 strptime() 将用户输入的时间字符串转换为程序可处理的格式。
四、注意事项
  • 时区处理:time 模块默认使用本地时区,若需跨时区操作,建议结合 datetime 模块。
  • 线程安全:time.clock() 在 Python 3.3 后已废弃,推荐使用 time.perf_counter() 测量短时间间隔。
  • 格式匹配:strptime() 的格式符必须与输入字符串完全一致,否则会抛出 ValueError。

通过灵活组合这些方法,可以高效处理大多数时间相关的编程需求。如需更复杂的功能(如时区转换),可进一步探索 datetime 或第三方库(如 pytz)。