Python中生成13位时间戳方法
在Python中生成13位毫秒级时间戳(Unix时间戳)可通过以下方法实现:
🔧 基础方法(推荐)
import time
timestamp_13 = int(time.time() * 1000)
print(f"13位时间戳: {timestamp_13}")
# 示例输出:1762240149800
📅 时区敏感型方法
from datetime import datetime
import time# 获取当前时间(带时区信息)
now_with_tz = datetime.now().astimezone()
timestamp_13 = int(now_with_tz.timestamp() * 1000)
print(f"带时区的13位时间戳: {timestamp_13}")
🌐 UTC时间方法
from datetime import datetimeutc_now = datetime.utcnow()
timestamp_13 = int(utc_now.timestamp() * 1000)
print(f"UTC时间的13位时间戳: {timestamp_13}")
💡 关键说明
-
精度说明
13位时间戳精度为毫秒,10位为秒级。1762240149800表示从1970-01-01 00:00:00 UTC开始经过的毫秒数。 -
时区处理
time.time()返回UTC时间戳(与系统时区无关)- 带时区的方法适用于需要明确时区信息的场景
-
性能对比
import timeit# 基础方法性能 timeit.timeit('int(time.time()*1000)', number=1000000, globals=globals()) # 输出约0.2秒(100万次调用)
⚠️ 注意事项
- 跨平台兼容性:所有方法均兼容Windows/Linux/macOS
- 时间精度:系统时间精度可能影响最后几位数字
- 闰秒处理:时间戳计算不包含闰秒调整
📆 时间戳转换示例
import datetime# 转换回可读时间
def timestamp_to_str(timestamp_13):dt = datetime.datetime.utcfromtimestamp(timestamp_13 / 1000)return dt.strftime("%Y-%m-%d %H:%M:%S.%f")[:-3]print(timestamp_to_str(1762240149800))
# 输出:2025-11-04 14:02:29.800
这些方法覆盖了从基础到进阶的时间戳处理需求,可根据具体场景选择最适合的方案。
