Python 无法将历元值转换为人类可读的日期格式

Python 无法将历元值转换为人类可读的日期格式,python,python-3.x,Python,Python 3.x,我正在尝试使用Python版本3转换历元值-2208988800000 我已经尝试过在线工具转换,所以在那里我得到1900年1月1日的输出 import datetime datetime.datetime.fromtimestamp(-2208988800000 / 1000).strftime('%c') --------------------------------------------------------------------------- OSError Traceback

我正在尝试使用Python版本3转换历元值
-2208988800000

我已经尝试过在线工具转换,所以在那里我得到1900年1月1日的输出

import datetime
datetime.datetime.fromtimestamp(-2208988800000 / 1000).strftime('%c')

---------------------------------------------------------------------------
OSError
Traceback (most recent call last)
  <ipython-input-15-abaf34dc5003> in <module>()
----> 1 datetime.datetime.fromtimestamp(-2208988800000 / 1000).strftime('%c')

OSError: [Errno 22] Invalid argument
导入日期时间
datetime.datetime.fromtimestamp(-2208988800000/1000).strftime(“%c”)
---------------------------------------------------------------------------
奥瑟罗
回溯(最近一次呼叫最后一次)
在()
---->1 datetime.datetime.fromtimestamp(-2208988800000/1000).strftime(“%c”)
OSError:[Errno 22]参数无效

我无法复制您的问题;我正在
ubuntu18.04
上使用
python3.6
,并得到了这个输出(可能因为我的时区而略有不同):

使用您在问题中提到的转换器,这似乎是正确的:



任何
OSError
都来自于的说法。

fromtimestamp
行为取决于平台。我在Windows 10上,不支持负值

行使自:

如果时间戳超出平台C localtime()或gmtime()函数支持的值范围,则fromtimestamp()可能会引发ValueError。这种情况通常被限制在1970年到2038年间

>>从datetime导入datetime作为dt
>>>dt.fromtimestamp(-1)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
OSError:[Errno 22]参数无效

Hi Ralf,我尝试过你的方法,但我遇到了同样的错误,我在Windows环境下使用的是版本为3.4的Jupyter笔记本。User@Artog在文章中提到,Windows上可能不允许使用负时间戳
>>> import datetime
>>> datetime.datetime.fromtimestamp(-2208988800000 / 1000).strftime('%c')
'Sun Dec 31 20:09:20 1899'
>>> datetime.datetime.fromtimestamp(-2208988800000 / 1000)
datetime.datetime(1899, 12, 31, 20, 9, 20)
>>> from datetime import datetime as dt
>>> dt.fromtimestamp(-1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 22] Invalid argument