我有一个数据集,其中包含从1995年到2016年的数字日期。 1/1/1995等于1,2 / 1/1995是2和2016年12月31日是8036,所以每天都是一个数字。
如何将时间数组[1,2,3,...,8034,8035,8036]转换为dd / mm / yyyy的日期?
答案 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)))