我在 Python 中有一个 float 组,如下所示:
[20010101.0, 20010101.25, 20010101.5, 20010101.75, 20020102.0, ...]
如何将其转换为正确考虑小数的 datetime
对象实例,这样我就不会丢失小时信息?
dat1 = dt.datetime.strptime(str(20010101.25), "%Y%m%d.%f")
print(dat1.date())
print(dat1.hour)
逻辑上给出:
2001-01-01
0
但我希望它能够给出:
2001-01-01
6
最佳答案
您可以先将小时转换为 strptime,如下所示:
from datetime import datetime
dates = [20010101.0, 20010101.25, 20010101.5, 20010101.75, 20020102.0]
for a_date in dates:
date, hour = divmod(a_date, 1)
print datetime.strptime('{} {}'.format(int(date), int(24.0 * hour)), "%Y%m%d %H")
给你:
2001-01-01 00:00:00
2001-01-01 06:00:00
2001-01-01 12:00:00
2001-01-01 18:00:00
2002-01-02 00:00:00
关于python - 将包含天数的日期字符串转换为浮点型日期时间对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35915133/