Python time模块详解与教程
Python 的 time
模块是标准库中用于处理时间的核心工具,广泛应用于日志记录、定时任务、性能测试等场景。本教程通过清晰的结构和实用的示例,帮助你快速掌握 time
模块的关键功能。
1. 什么是 time
模块?
time
模块是 Python 内置的标准库,提供了多种与时间相关的功能,包括:
time
模块简单易用,适合各种需要处理时间的场景。
2. 时间表示方式
在 time
模块中,时间有三种主要的表示方式:
2.1 时间戳(Timestamp)
time.time()
:返回当前时间的时间戳。示例:
import time
timestamp = time.time()
print(f"当前时间戳: {timestamp}")
输出示例 :
当前时间戳: 1698567845.123456
2.2 结构化时间(struct_time
)
time.localtime()
:将时间戳转换为本地时间的 struct_time
。time.gmtime()
:将时间戳转换为 UTC 时间的 struct_time
。示例:
import time
local_time = time.localtime()
utc_time = time.gmtime()
print(f"本地时间: {local_time}")
print(f"UTC 时间: {utc_time}")
输出示例 :
本地时间: time.struct_time(tm_year=2023, tm_mon=10, tm_mday=29, tm_hour=14, tm_min=30, tm_sec=45, ...)
UTC 时间: time.struct_time(tm_year=2023, tm_mon=10, tm_mday=29, tm_hour=6, tm_min=30, tm_sec=45, ...)
2.3 格式化时间字符串
"2023-10-29 14:30:45"
)。time.strftime(format, struct_time)
:将 struct_time
转换为格式化字符串。time.strptime(string, format)
:将格式化字符串解析为 struct_time
。示例:
import time
# 当前时间的格式化字符串
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print(f"Formatted time: {formatted_time}")
# 解析时间字符串
parsed_time = time.strptime("2023-10-29 14:30:45", "%Y-%m-%d %H:%M:%S")
print(f"Parsed time: {parsed_time}")
输出示例 :
Formatted time: 2023-10-29 14:30:45
Parsed time: time.struct_time(tm_year=2023, tm_mon=10, tm_mday=29, tm_hour=14, tm_min=30, tm_sec=45, ...)
3. 常用方法
3.1 获取当前时间
time.time()
:返回当前时间的时间戳。time.localtime()
:返回当前时间的本地 struct_time
。time.gmtime()
:返回当前时间的 UTC struct_time
。示例:
import time
timestamp = time.time()
local_time = time.localtime()
utc_time = time.gmtime()
print(f"时间戳: {timestamp}")
print(f"本地时间: {local_time}")
print(f"UTC 时间: {utc_time}")
3.2 延迟程序执行
time.sleep(seconds)
:暂停程序执行指定的秒数。示例:
import time
print("开始...")
time.sleep(2) # 暂停 2 秒
print("结束!")
3.3 时间格式化与解析
time.strftime(format, struct_time)
:将 struct_time
转换为格式化字符串。time.strptime(string, format)
:将格式化字符串解析为 struct_time
。格式化符号:
符号 |
含义 |
示例 |
---|---|---|
|
年(四位数) |
2023 |
|
月(两位数) |
10 |
|
日(两位数) |
29 |
|
小时(24 小时制) |
14 |
|
分钟 |
30 |
|
秒 |
45 |
示例:
import time
# 格式化当前时间
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print(f"格式化时间: {formatted_time}")
# 解析时间字符串
parsed_time = time.strptime("2023-10-29 14:30:45", "%Y-%m-%d %H:%M:%S")
print(f"解析后的时间: {parsed_time}")
3.4 时间计算与性能测试
time.time()
可用于计算程序运行时间。time.mktime(struct_time)
:将 struct_time
转换为时间戳。示例:
import time
start_time = time.time() # 记录开始时间
time.sleep(2) # 模拟耗时操作
end_time = time.time() # 记录结束时间
elapsed_time = end_time - start_time
print(f"耗时: {elapsed_time:.2f} 秒")
4. 完整示例:倒计时器
以下是一个完整的倒计时器示例,展示如何结合 time
模块的功能实现动态倒计时:
import time
def countdown(seconds):
while seconds:
mins, secs = divmod(seconds, 60)
time_format = f"{mins:02d}:{secs:02d}"
print(time_format, end="\r") # 动态更新倒计时
time.sleep(1)
seconds -= 1
print("倒计时结束!")
# 主程序
print("启动倒计时...")
countdown(10)
print("完成!")
输出示例 :
启动倒计时...
00:10
00:09
00:08
...
倒计时结束!
完成!
5. 总结
time
模块 提供了丰富的功能来处理时间,包括获取当前时间、格式化时间、延迟程序执行等。time.time()
:获取当前时间戳。time.sleep()
:延迟程序执行。time.strftime()
和 time.strptime()
:格式化和解析时间。time.localtime()
和 time.gmtime()
:获取本地时间和 UTC 时间。通过熟练掌握 time
模块,你可以轻松处理各种与时间相关的任务!
关的编程需求!
作者:jmxer