小编典典

通过Python将UTC时间转换为GPS时间转换器

python

我有一个UTC时间(纪元Unix时间),其格式设置为时间戳,如下所示。
1496224620
(人类可读的值:2017年5月31日09:57:00)

我需要将格式化为Unix时间的时间戳转换为GPS时间格式,如下所示。
1180259838
(人类可读的值:2017年5月31日09:57:00)

我需要一个python程序(算法对我来说很好)将Unix时间格式的时间戳转换为GPS时间格式的时间戳。

有一个PHP程序可以这样做。我可以从PHP代码更改为Python代码,以自己拥有一个Python程序。但是我认为还有一种捷径(Python的内置函数)可以更有效地实现我的期望。
这是PHP程序https://www.andrews.edu/~tzs/timeconv/timealgorithm.html的链接


阅读 711

收藏
2021-01-20

共1个答案

小编典典

只需从UNIX时间中减去315964782。

GPS时间从1980年1月5日开始。UNIX时间从1970年1月1日开始。它们只是具有不同的起点,即Epochs。这两个信号出现时间之间的差的这两个日期之间的秒数
PLUS 18 GPS闰秒(迄今为止)。

正如其他人指出的那样,随着地球自转逐渐变慢,GPS
leap秒
会定期添加。

我们是否必须在每次the秒发生时(例如,下一个2018年,2019年…)手动更新我们的源代码?有什么可行的方法可以防止此问题?

许多设备都有一条消息,指示有效的GPS秒的“当前”秒数。我的C ++
NeoGPS库有一个示例程序,该程序向ublox设备请求当前的GPS秒数(此处定义为二进制消息)。有关NAV-
TIMEGPS消息的更多信息,请参见ublox NEO-xx规格。

其他制造商可能拥有自己的协议和消息,以获取当前的GPS leap秒。

然而:

大多数GPS设备以UTC报告时间,并且已经包括the秒。除非您使用基于一周开始(周日午夜)的GPS时间,否则您无需知道GPS leap秒。

如果您尝试从“自周开始的GPS时间”转换,那么您还需要知道当前的GPS周编号,以将“周的GPS时间”转换为UTC。

ublox设备报告一些修复信息,其时间戳为“自一周开始以来的GPS毫秒”。
这个NeoGPS文件显示了几种在“星期几以来的GPS毫秒”和UTC之间进行转换的方法。

2021-01-20