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

将整数转换为datetime时触发OSError: [Errno 22] Invalid Argument问题排查

解决datetime.fromtimestamp转换自定义整数时的OSError问题

嘿,我一眼就看出问题所在啦——你用错方法啦!datetime.fromtimestamp()这个函数是用来处理Unix时间戳的(也就是从1970年1月1日00:00:00 UTC开始计算的秒数/毫秒数),但你传入的20210805180239这种数字其实是YYYYMMDDHHMMSS格式的时间编码,根本不是Unix时间戳,难怪会抛出无效参数的错误。

那该怎么正确转换呢?咱们得把这个整数先转成字符串,再用datetime.strptime()来按照对应的格式解析,具体看下面修正后的代码:

from datetime import datetime
anewvalue = [20210805180238, 20210805180239, 20210805180241]
# 先把整数转成字符串,再用strptime按YYYYMMDDHHMMSS格式解析
timestamp = datetime.strptime(str(anewvalue[1]), '%Y%m%d%H%M%S')
print(timestamp.strftime('%Y-%m-%d %H:%M:%S'))

简单解释下修正逻辑:

  • 第一步:把数组里的整数转成字符串,因为strptime()需要字符串类型的输入
  • 第二步:用%Y%m%d%H%M%S作为格式匹配符,对应你的数字格式:
    • %Y:4位年份(比如2021)
    • %m:2位月份(比如08)
    • %d:2位日期(比如05)
    • %H:24小时制的小时(比如18)
    • %M:分钟(比如02)
    • %S:秒数(比如39)
  • 最后用strftime()格式化输出你想要的格式就可以了

这样运行后就能得到正确的时间:2021-08-05 18:02:39

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 03:52:44