将 1 月 1 日午夜的小时数转换为实际日期
Convert hours from January 1st midnight to actual date
我正在使用一些遥测技术,这些遥测技术使用自当年 1 月 1 日午夜以来以小时为单位测量的时间戳。
所以我在时间 8668.12034 得到值 1
我想将其转换为更有用的日期格式,当然我一直在使用硬编码数学将天数、剩余小时数、分钟数等划分为闰年...并且它有效但我确定有一种简单的方法可以使用日期时间库或其他正确的方法?
我认为 timedelta 是可行的方法,因为它从年初开始就给了我一个增量,但这是否考虑了闰年?
想知道其他人会如何处理这个问题,感谢您的任何建议。
# 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闰年
进一步处理
如果想进一步处理,可以使用 getattr()
:
timeunits = ['year', 'month', 'day', 'hour', 'minute', 'second']
[getattr(your_date,timeunit) for timeunit in timeunits]
导致:
[2020, 2, 11, 16, 0, 0]
我正在使用一些遥测技术,这些遥测技术使用自当年 1 月 1 日午夜以来以小时为单位测量的时间戳。
所以我在时间 8668.12034 得到值 1
我想将其转换为更有用的日期格式,当然我一直在使用硬编码数学将天数、剩余小时数、分钟数等划分为闰年...并且它有效但我确定有一种简单的方法可以使用日期时间库或其他正确的方法?
我认为 timedelta 是可行的方法,因为它从年初开始就给了我一个增量,但这是否考虑了闰年?
想知道其他人会如何处理这个问题,感谢您的任何建议。
# 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闰年
进一步处理
如果想进一步处理,可以使用 getattr()
:
timeunits = ['year', 'month', 'day', 'hour', 'minute', 'second']
[getattr(your_date,timeunit) for timeunit in timeunits]
导致:
[2020, 2, 11, 16, 0, 0]