python – 十进制日期和时间转换

我收到了一堆由不再和我们在一起的人生成的报告.
它们每个都以小数日期和时间开头,如下所示:“41433.662413”,“41401.250002”
我使用datetime尝试了很多不同的方法,但无法弄清楚如何恢复日期.我知道(因为手写笔记)以上是指2013年5月27日早上6点.
任何帮助将不胜感激.
谢谢.
最佳答案
这看起来像OLE自动化日期,在许多systems such as Microsoft Excel中使用.它实际上是一个表示日期的浮点值,其值为1.0等于1900年1月1日的午夜.

您可以通过以下方式转换为python日期:

from datetime import timedelta, datetime

d = timedelta(days=41433.662413)
st = datetime(1899,12,31)
date = st + d
print(date)

这将打印2013-06-09 15:53:52.483200.虽然这与您提到的5月27日日期有所不同,但考虑到您包含多个输入,我怀疑这是正确的转换,因为这将是一个标准,它提供与手写笔记相同范围内的日期和时间.然而,如果不确切知道哪个输入对应于该日期,则很难说清楚.

使用此转换,5月27日早上6点的值为41420.25.我会检查这个“值”以检查手写的笔记是否与此格式一致.

转载注明原文:python – 十进制日期和时间转换 - 代码日志