使用timestamp()方法可将datetime对象转换为秒级时间戳,如now.timestamp()输出浮点数;2. 用int()转换为整数秒;3. 乘以1000并取整得毫秒级时间戳;4. 推荐使用带时区的datetime(如timezone.utc)避免时区错误;5. 字符串时间可先用strptime解析再转时间戳。核心是时间转数字即转时间戳,注意时区与精度。

在 Python3 中,将 datetime 对象转换成数字,通常是指将其转换为时间戳(timestamp)—— 即从 1970年1月1日00:00:00 UTC 到该时间点的秒数(或毫秒数)。这是最常见的“时间转数字”方式。
1. 使用 timestamp() 方法转换为秒级时间戳
Python 的 datetime 模块提供了 timestamp() 方法,可以直接将本地 datetime 对象转换为浮点型的时间戳(单位:秒)。
from datetime import datetime示例:当前时间
now = datetime.now() timestamp_sec = now.timestamp() print(timestamp_sec) # 输出类似:1712345678.123456
2. 转换为整数(去掉小数部分)
如果只需要整数秒,可以使用 int() 强制转换:
timestamp_int = int(now.timestamp()) print(timestamp_int) # 输出类似:1712345678
3. 转换为毫秒级时间戳
若需要更高精度(如用于前端 JS 或数据库),可乘以 1000 并转为整数:
立即学习“Python免费学习笔记(深入)”;
timestamp_ms = int(now.timestamp() * 1000) print(timestamp_ms) # 输出类似:1712345678123
4. 处理时区问题(推荐使用带时区的 datetime)
如果 datetime 对象没有时区信息,timestamp() 会按本地时区处理,容易出错。建议使用带时区的时间对象:
from datetime import datetime, timezone获取当前 UTC 时间并带上时区
utc_now = datetime.now(timezone.utc) timestamp_utc = utc_now.timestamp() print(timestamp_utc)
5. 将字符串时间转为数字时间戳
先用 strptime() 解析字符串为 datetime,再转时间戳:
time_str = "2024-04-05 12:30:45" dt = datetime.strptime(time_str, "%Y-%m-%d %H:%M:%S") timestamp = int(dt.timestamp()) print(timestamp)
基本上就这些常见用法。核心是理解:时间转数字 = 转时间戳,用 datetime.timestamp() 最直接。注意时区和精度即可。不复杂但容易忽略细节。











