python - 将 1 月 1 日午夜的小时数转换为实际日期
问题描述
我正在使用一些遥测技术,这些遥测技术使用自今年 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
确实知道闰年。
进一步处理
如果想进一步处理,可以使用getattr()
:
timeunits = ['year', 'month', 'day', 'hour', 'minute', 'second']
[getattr(your_date,timeunit) for timeunit in timeunits]
导致:
[2020, 2, 11, 16, 0, 0]
推荐阅读
- angular-material - 日历内的角垫日期选择器格式
- php - Laravel 查看子文件夹路由
- spring - Thymeleaf 表单与 Spring MVC 表单?
- scala - 如何在使用 Spray 反序列化带有类型参数的 Trait 时对外部调用进行分页?
- javascript - THREE.js:使用 renderer.OutputEncoding = sRGBEncoding 使纹理变灰
- javascript - Uncaught (in promise) RuntimeError: abort(undefined) at Error in codepen mediapipe
- python - selenium 中缺少 iframe 元素
- c++ - 使用 std::array<> 的构造函数委托
- javascript - 在 javascript 中设置与浏览器时区和时间无关的特定日期和时间
- laravel - Laravel 数据表行重新排序问题