Python3中datetime模块支持字符串与datetime互转(strptime/strftime)、时间戳转换(fromtimestamp/timestamp)、struct_time交互及时区处理(ZoneInfo),需注意格式符匹配与时区设置,掌握这些方法可满足多数时间操作需求。

Python3 中 datetime 模块提供了多种时间表示和转换方式,常用于处理日期、时间以及它们之间的格式化与运算。以下是常用的转换方法,覆盖常见使用场景。
使用 strptime() 方法将格式化的字符串解析为 datetime 对象。
示例:from datetime import datetime <p>date_str = "2024-05-20 14:30:00" dt = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S") print(dt) # 输出: 2024-05-20 14:30:00
注意格式符要与字符串匹配,常用格式符:
使用 strftime() 将 datetime 对象格式化为可读字符串。
立即学习“Python免费学习笔记(深入)”;
示例:now = datetime.now()
formatted = now.strftime("%Y年%m月%d日 %H:%M")
print(formatted) # 如:2024年05月20日 14:35
使用 datetime.fromtimestamp() 将 Unix 时间戳(秒数)转为本地 datetime 对象。
示例:timestamp = 1716213000 dt_from_ts = datetime.fromtimestamp(timestamp) print(dt_from_ts) # 转为本地时间
若需 UTC 时间,使用 datetime.utcfromtimestamp()(注意:Python 3.12+ 推荐使用 utcfromtimestamp 替代 utcnow)。
使用 timestamp() 方法获取 datetime 对象对应的时间戳。
示例:now = datetime.now() ts = now.timestamp() print(ts) # 如:1716213050.123
注意:对象需为 aware 类型(带时区)才能准确转换,否则按本地时区处理。
通过 time 模块的 mktime 和 localtime 可实现与 struct_time 的互转。
示例:import time <h1>datetime 转 struct_time</h1><p>dt = datetime.now() struct = dt.timetuple() print(struct)</p><h1>struct_time 转 timestamp 再转 datetime</h1><p>ts = time.mktime(struct) dt_back = datetime.fromtimestamp(ts)
使用 zoneinfo(Python 3.9+)或 pytz 库处理时区转换。
示例(使用 zoneinfo):from zoneinfo import ZoneInfo
<h1>创建带时区的时间</h1><p>beijing_time = datetime.now(ZoneInfo("Asia/Shanghai"))
ny_time = beijing_time.astimezone(ZoneInfo("America/New_York"))</p><p>print(beijing_time)
print(ny_time)
这有助于跨时区时间统一和转换。
基本上就这些。掌握 strptime、strftime、timestamp 相关方法,再配合时区处理,就能应对大多数时间转换需求。不复杂但容易忽略细节,比如格式符大小写、时区是否明确。建议实际中多打印中间结果验证。
以上就是python3时间中datetime有哪些转换方式?的详细内容,更多请关注php中文网其它相关文章!
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号