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

Python中Unix时间戳转换报错:year 50251 is out of range问题排查

问题解决:Unix时间戳转换报错“year 50251 is out of range”

嘿,这问题我太熟啦!你踩了一个新手常犯的时间戳单位坑:

你的时间戳1523620800000是毫秒级的(13位数字),但Python的dt.datetime.utcfromtimestamp()函数默认只认秒级的Unix时间戳(10位数字)。直接把毫秒数传进去,Python会把它当成秒数计算,算出来的年份自然就跑到50251年了,这就是报错的根源。

修复方法很简单:

把你的毫秒时间戳除以1000,转换成秒级时间戳再传入函数:

# 假设timestamp是你拿到的1523620800000
frmt_date = dt.datetime.utcfromtimestamp(timestamp / 1000).strftime("%Y/%m/%d %H:%M")

验证一下:

1523620800000 / 1000 = 1523620800,这个秒级时间戳转换后就是2018/05/17 17:10,和你在验证网站上的结果完全一致。

小提示:

如果是在Python 2环境下,记得用timestamp / 1000.0来确保得到浮点数(避免整数除法截断),Python 3里直接用/就没问题啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:14:30