You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中不受机器时区影响地将UTC DateTime转为UTC Timestamp?

解决方案

问题根源:datetime.datetime.strptime解析出的是无时区信息(naive)的datetime对象,调用timestamp()时,Python会默认将其当作本地机器时区的时间来转换,导致不同时区的机器返回不同结果。

最简解决方法:给解析后的datetime对象明确标记为UTC时区,再转换时间戳,代码如下:

import datetime

date1 = "2022-05-17 04:35:38"
# 解析字符串为naive datetime,标记为UTC时区
dt_utc = datetime.datetime.strptime(date1, '%Y-%m-%d %H:%M:%S').replace(tzinfo=datetime.timezone.utc)
# 转换为UTC时间戳
date_utc = int(dt_utc.timestamp())

这段代码会稳定返回1652762138,不受运行机器的时区影响。

补充说明

  • replace(tzinfo=datetime.timezone.utc)是给naive datetime添加UTC时区信息的最简方式,无需额外安装第三方库
  • 如果你的Python版本低于3.2,datetime.timezone不可用,可改用pytz.utc(需先执行pip install pytz),代码调整为:
    import datetime
    import pytz
    
    date1 = "2022-05-17 04:35:38"
    dt_utc = datetime.datetime.strptime(date1, '%Y-%m-%d %H:%M:%S').replace(tzinfo=pytz.utc)
    date_utc = int(dt_utc.timestamp())
    

内容的提问来源于stack exchange,提问作者HabibS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 10:47:51