【问题标题】:OSError: [Errno 22] Invalid argument | Datetime PythonOSError: [Errno 22] 无效参数 |日期时间 Python
【发布时间】:2021-10-13 01:36:03
【问题描述】:

尝试将整数转换为日期时间时收到以下错误。

错误

OSError: [Errno 22] Invalid argument

代码

from datetime import datetime

anewvalue = [20210805180238, 20210805180239, 20210805180241]

timestamp = datetime.fromtimestamp(int(anewvalue[1]))
print(timestamp.strftime('%Y-%m-%d %H:%M:%S'))

代码说明

  • 正在导入datetime 模块。
  • 正在初始化一个数组。
  • 将数组传递给日期时间。
  • 转换为时间戳。

注意

当我传递自定义整数时它工作正常。

【问题讨论】:

  • 我从你的代码中得到ValueError: year 642424 is out of range
  • 转换为字符串并像datetime.strptime(str(20210805180238), "%Y%m%d%H%M%S")一样解析
  • 我建议您查看 datetime.fromtimestamp() 文档,您将清楚地看到您的方式的错误
  • @MrFuppes datetime.strptime(str(20210805180238), "%Y%m%d%H%M%S") 它起作用了。谢谢

标签: python python-3.x datetime timestamp


【解决方案1】:

我用这个方案解决了:

from datetime import datetime,timedelta
d=datetime.fromtimestamp(0) + timedelta(milliseconds=t)

t:以毫秒为单位的时间戳

它应该适合你。

M

【讨论】:

  • 自 UNIX 时代以来,OP 的输入显然不是毫秒。相反,整数数据类型用于表示某个日期/时间格式,请参阅我在问题下的评论。
  • 啊,我错过了。谢谢!
猜你喜欢
  • 1970-01-01
  • 2021-11-01
  • 2021-02-10
  • 2019-04-27
  • 1970-01-01
  • 2020-01-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多