如何使用 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
我需要将使用 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