如何将数字转换为日期?

时间:2018-02-13 14:40:32

标签: python date

我有一个数据集,其中包含从1995年到2016年的数字日期。 1/1/1995等于1,2 / 1/1995是2和2016年12月31日是8036,所以每天都是一个数字。

如何将时间数组[1,2,3,...,8034,8035,8036]转换为dd / mm / yyyy的日期?

3 个答案:

答案 0 :(得分:3)

使用datetime.fromordinal(x)方法。这将从数字x创建一个日期,表示自0001-01-01以来的天数。

如果您想以x==1为1995-01-01开始,您可以

d = datetime.date(1,1,1) # actual date does not matter
print d.fromordinal( datetime.date(1994,12,31).toordinal() + x)

其中x是自1994年最后一天以来的天数。

答案 1 :(得分:1)

使用python time library也支持的纪元转化。 unix纪元时间从1970年1月1日开始,以秒为单位计算。如果您添加788932800秒到达01/01/1995,则可以添加86400(每天秒数)并可以使用标准技术计算“从纪元开始的秒数”回到正确的日期。

示例代码:

}

答案 2 :(得分:0)

前100天有帮助吗?你可以改变否。

import time
epochOne = 788918400 #epoch for 1995-01-01 00:00:00
oneDay = 86400 #epoch for 86400
noOfDays = 8036 

for each in range(noOfDays):
  epochEach = epochOne + (each * oneDay)
  print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(epochEach)))