将1月1日午夜的小时数转换为实际日期

时间:2020-08-01 16:28:01

标签: python python-datetime

我正在使用一些遥测技术,该遥测技术使用的时间戳是从今年1月1日午夜开始算起的小时数。

所以我在时间8668.12034处得到了值1

我想将其转换为更有用的日期格式,当然我一直在用硬编码数学将其划分为几天,剩余小时,分钟等,以说明leap年。 '确定使用datetime库有简单的方法吗?

我在想timedelta是要走的路,因为自从年初以来它给了我一个delta,但这是否算得上leap年呢?

很好奇别人会如何处理此问题,谢谢您的建议。

1 个答案:

答案 0 :(得分:4)

# import packages we need
import datetime

从经过的时间到datetime.datetime对象

例如,您可以这样做:

hours_elapsed = 1000
your_date = datetime.datetime(2020,1,1,0,0)+datetime.timedelta(hours=hours_elapsed)

(当然,将hours_elapsed更改为您所经历的任何时间。)

your_date将是:datetime.datetime(2020, 2, 11, 16, 0)

是的,timedelta does know about leap年。


进一步处理

如果要进一步处理,可以使用getattr()

timeunits = ['year', 'month', 'day', 'hour', 'minute', 'second']
[getattr(your_date,timeunit) for timeunit in timeunits]

结果:

[2020, 2, 11, 16, 0, 0]