如何将表示自纪元(1970年)以来的天数的序列日期号转换为相应的日期字符串?我看到过多篇帖子展示如何从字符串转换为日期号码,但我没有找到任何有关如何执行反向操作的帖子。
例如,15951
对应于 "2013-09-02"
。
>>> import datetime
>>> (datetime.datetime(2013, 9, 2) - datetime.datetime(1970,1,1)).days + 1
15951
(因为任何生成这些日期数字的东西都遵循将1970年1月1日视为1的惯例,所以需要加上+ 1
。)
TL;DR: 寻找一个能够执行以下操作的工具:
>>> serial_date_to_string(15951) # arg is number of days since 1970
"2013-09-02"
这与Python:将纪元时间转换为日期时间不同,因为我从1970年开始计算天数。 我不确定是否可以直接乘以86,400,因为存在闰秒等问题。
datetime.datetime(1970, 1, 1, 0, 0) + datetime.timedelta(15951)
- sisanareddatetime.datetime(1970,1,1) + datetime.timedelta(15951 - 1)
- paultepoch = datetime.datetime.utcfromtimestamp(0)
来获取纪元日期时间,而不是硬编码。然后遵循 @SSNR。 - harishankarv