如何在 python 中将 1970 年前的日期转换为纪元? [复制]
Posted
技术标签:
【中文标题】如何在 python 中将 1970 年前的日期转换为纪元? [复制]【英文标题】:How do I convert a pre-1970 date to epoch in python? [duplicate] 【发布时间】:2021-01-19 20:14:03 【问题描述】:如何在 Python 3.x 中将 1970 年之前的日期转换为纪元?
针对相反方向给出了许多示例,其中一个具有负纪元值并使用 timedelta 获取日期。但是我找不到我们拥有真实日期时间并想要获取纪元时间戳的示例。
例如我正在做以下事情:
timestamp = datetime.datetime(1964, 12, 1, 0, 0).timestamp()
这给了我“OSError: [Errno 22] Invalid argument”
(我想这样做的原因是编辑扫描图片的创建日期,使其反映曝光时间,而不是扫描日期。)
我的确切设置: 视窗 x64 Python 3.7
【问题讨论】:
我刚刚在 Python 3.8.2 上运行了该行(如果重要的话,它是为 Alpine Linux 构建的,尽管在 Windows 上的 WSL 下运行),它运行良好,产生了-160444800.0
。您将需要更具体地了解您的设置以帮助复制者。
我可以在 Windows 10 上重现该错误。
@ShadowRanger 感谢您的测试!我在 Windows 上使用 3.7.9,所以它可能确实是固定的。我会立即尝试安装 3.8。编辑:你的下一个答案越过了我的。那么,一个Windows错误。这更难做点什么。也许有人想出了解决方法?
【参考方案1】:
看起来这是 Windows 上尚未修复的错误:Issue 37527: Timestamp conversion on windows fails with timestamps close to EPOCH
【讨论】:
以上是关于如何在 python 中将 1970 年前的日期转换为纪元? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Python 中将日期时间对象转换为自纪元(unix 时间)以来的毫秒数?
如何获得自 1970 年 1 月 1 日以来 Python 日期时间对象的秒数?
如何在EXCEL中将字符转成日期 如19970828转成1997-08-28