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

Python:从指定日期生成目标时间戳失败的问题求助

解决时间戳生成偏差的问题

我看了你的代码,问题出在时区处理上!你用的time.mktime()函数是把本地时间转换成时间戳,但目标时间戳对应的是UTC时间的秒数乘以10^7。如果你的本地时区和UTC有偏移(比如国内东八区),结果自然会不对。

正确的解决方案

根据你的需求,我们需要把解析后的时间当作UTC时间来计算时间戳,这里分Python 2和Python 3两种情况给出代码:

Python 3 版本

import datetime

times = '05.04.2018 13:15'
# 解析字符串为datetime对象
dt = datetime.datetime.strptime(times, "%d.%m.%Y %H:%M")
# 为对象添加UTC时区信息
dt_utc = dt.replace(tzinfo=datetime.timezone.utc)
# 获取UTC秒级时间戳,再乘以10^7得到目标格式
target_timestamp = int(dt_utc.timestamp() * 10000000)
print(target_timestamp)

Python 2 版本(Python 2没有timestamp()方法)

import datetime
import calendar

times = '05.04.2018 13:15'
# 解析字符串为datetime对象
dt = datetime.datetime.strptime(times, "%d.%m.%Y %H:%M")
# 用calendar.timegm()把UTC时间的timetuple转成秒级时间戳
timestamp_sec = calendar.timegm(dt.timetuple())
# 乘以10^7得到目标格式
target_timestamp = int(timestamp_sec * 10000000)
print(target_timestamp)

关键差异说明

  • time.mktime():将本地时间的时间元组转换为时间戳,会受你当前系统时区影响。
  • calendar.timegm():将UTC时间的时间元组转换为时间戳,完全基于UTC时区计算,这正是你需要的。

运行上面的代码,就能得到你想要的15229231800000000啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:31:19