【发布时间】:2020-11-23 09:51:52
【问题描述】:
我正在尝试将 datetime 对象转换为时间戳,以便我可以将时间戳保存到 json 文件中,然后我可以将该时间戳转换为 datetime 对象。
在我将年份设置为大于 1970 之前,这一直很好,但是当减少年份时,出现异常,说 OSError: [Errno 22] Invalid argument
import datetime
cd = datetime.datetime.strptime("1965-12-25", "%Y-%m-%d")
datetime.datetime.timestamp(cd) # this line gives error
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
OSError: [Errno 22] Invalid argument
我使用的是 Windows 10 操作系统。是否有任何例外或其他方式将日期时间转换为时间戳?
【问题讨论】:
-
它会给出一个负值
-
时间戳 0(或 1)是 1970 年 1 月 1 日 00:00:00,那么时间戳在此日期之前并不存在
-
@Christophe 您可以使用该日期的负偏移量来表示之前的日期......
-
Sunil,你真的应该使用
cd.timestamp()而不是datetime.datetime.timestamp(cd),但这只是顺便说一句…… -
来自time module's docs:“此模块中的函数可能无法处理纪元之前或未来遥远的日期和时间”
标签: python python-3.x datetime timestamp