如何使用 Python 将 LabVIEW 十进制日期转换为字符串日期时间格式?

How do I convert a LabVIEW decimal date into a string datetime format using Python?

我需要将使用 LabVIEW 生成的 JSON 文件中的十进制时间戳转换为字符串日期时间,以便我可以 POST 将其转换为我正在使用的 API。例如,一个这样的十进制时间戳是 3640111724.4817362;我该怎么做?

编辑:This 来自 NI 的文章描述了他们如何格式化时间戳。它们是从一个非标准纪元 (01/01/1904 00:00:00.00 UTC) 开始的,所以换句话说,Python 的解释是提前 66 年。

只需使用日期时间中的 datetime.fromtimestamp 并根据需要将其格式化为 strftime:

编辑:减去 66 年以匹配日期时间戳模式

from dateutil.relativedelta import relativedelta
from datetime import datetime

timestamp = 3640111724.4817362

date = datetime.fromtimestamp(timestamp)
date = date - relativedelta(years=66)
print(date.strftime("%m/%d/%Y, %H:%M:%S"))

输出:

05/07/2019, 22:08:44

1904-01-01 00:00:00 UTC 和 1970-01-01 00:00:00 UTC 之间的秒数是 2082844800,因此您只需要在创建 Python 日期时间对象。

from datetime import datetime

timestamp = 3640111724.4817362
dt = datetime.fromtimestamp(timestamp - 2082844800)
print(dt)
# 2019-05-07 22:08:44.481736