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

标签 python

<分区>

我收到了一堆由不再与我们在一起的人生成的报告。 它们每个都以十进制日期和时间开头,如下所示:“41433.662413”、“41401.250002” 我使用日期时间尝试了许多不同的方法,但无法弄清楚如何恢复日期。我知道(因为手写的笔记)以上指的是 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 - 十进制日期和时间转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17030224/

相关文章:

python - Pypi 注册和更新

python - 阅读 igraph 中的 Disconected Graph for python

Python unittest - 指定的文件仍必须作为模块导入?

python - 如何在python上获取子链接

python - 在 numpy 数组上并行化区域计算

python - 关闭 js 上的 PythonShell( Electron + flask )

python - GTK 应用程序中的终端小部件

python - 如何仅显示值大于 x 的列

python 变量引用意外改变行为

python - 检测 numpy-3D 数组中的极端(最远)点