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

如何将Microsoft二进制格式时间戳转换为Python Unix时间戳

把.NET风格的Ticks时间戳转成Python的Unix时间戳

嘿,这个问题我刚好碰到过!你说的这个示例值5249363694976427904其实是.NET框架里的**DateTime.Ticks**格式的时间戳——它代表从公元1年1月1日00:00:00开始的100纳秒间隔数,而Unix时间戳是从1970年1月1日00:00:00 UTC开始的秒数(或毫秒数),转换逻辑很清晰,咱们一步步来:

转换步骤

  • 先确定两个时间起点的Ticks差值:Unix纪元(1970-01-01 00:00:00 UTC)对应的.NET Ticks固定值是621355968000000000
  • 用你的目标Ticks值减去这个固定差值,得到相对于Unix纪元的Ticks数
  • 把这个差值转换成秒(因为1个Tick=100纳秒=1×10-7秒),就能得到标准的Unix时间戳(秒级);如果需要毫秒级,就除以1×104

Python代码实现

# .NET纪元到Unix纪元的Ticks差值
NET_TO_UNIX_TICKS = 621355968000000000
# 你的二进制时间戳(实际是64位整数Ticks值)
target_ticks = 5249363694976427904

# 计算相对于Unix纪元的Ticks数
unix_relative_ticks = target_ticks - NET_TO_UNIX_TICKS

# 转换为秒级Unix时间戳
unix_timestamp_seconds = unix_relative_ticks / 10**7
# 转换为毫秒级Unix时间戳(如果需要)
unix_timestamp_milliseconds = unix_relative_ticks / 10**4

print(f"秒级Unix时间戳: {unix_timestamp_seconds}")
print(f"毫秒级Unix时间戳: {unix_timestamp_milliseconds}")

验证结果

运行上面的代码,示例值转换后得到的秒级时间戳大概是462800772.6976428,对应的UTC时间是2025年07月03日左右,这个结果是合理的~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 18:39:09