首页 > 解决方案 > 为什么 GPS 时间和日期之间存在差异

问题描述

我在将其解码Date(1561525200000-0500)为可读日期时遇到了一些麻烦。应该是10-10-2017。我用蟒蛇。

datetime.datetime.utcfromtimestamp(1561525200000/1000) 

结果是

datetime.datetime(2019, 6, 26, 5, 0)

我不知道是什么问题。预期日期和实际日期之间存在差异。

那么这个日期格式是什么?是否有任何格式不是 GPS 时间但有效?我已经找到了一些,但没有任何效果。它让我疯狂。

标签: pythondatetimetime

解决方案


这是一种解析 UTC 偏移量的方法 - 根据偏移量的符号拆分并相应地解析:

import re
from datetime import datetime, timezone, timedelta

datestring = '1561525200000-0500'

parts = re.split('(\+|\-)', datestring)

if len(parts) > 1:
    dt = datetime.fromtimestamp(float(parts[0])/1e3,
                                tz=timezone(timedelta(hours=int(''.join(parts[1:])[:3]),
                                                      minutes=int(parts[-1][2:]))))
else: # string contains no UTC offset...
    dt = datetime.fromtimestamp(float(parts[0])/1e3, tz=timezone.utc)

# dt
# datetime.datetime(2019, 6, 26, 0, 0, tzinfo=datetime.timezone(datetime.timedelta(days=-1, seconds=68400)))

推荐阅读