【发布时间】:2019-05-07 12:39:59
【问题描述】:
我四处搜索,但找不到满足我问题的答案。
我正在使用 python 3.7,我需要将一系列十进制数字转换为 %Y-%m-%d %H:%M:%S 形式的日期时间对象。这样做时,我需要考虑一个原点,例如:
t = 0.000000 等于 2016-06-25 00:00:00
t = 0.010417 等于.....?
等等。我知道在我的十进制时间内,整数部分是自开始以来的天数,小数部分是天数的小数部分。
我使用 R here 找到了答案。我也认为我可能需要使用类方法date.fromordinal(ordinal)或类似的方法,但我不知道该怎么做。
这是我迄今为止尝试过的:
示例t = 1.010416
import datetime as DT
from datetime import timedelta
day = int(x)
datetime_object = DT.datetime.strptime("2016-06-25 00:00:00", '%Y-%m-%d %H:%M:%S')
python_datetime = DT.datetime.fromordinal(day) + timedelta(days=datetime_object.day-1)
我明白了:
datetime.datetime(1, 1, 25, 0, 0)
但我无法添加 2016 年或月份。此外,对于int(t) = 0 的每种情况,我都会得到:
ValueError: ordinal must be >= 1
非常感谢您的回答
【问题讨论】:
-
@glibdud 我已经编辑了问题
标签: python python-3.x datetime