当前位置: 首页 > 面试题库 >

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

龙玺
2023-03-14
问题内容

我有一个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的链接


问题答案:

只需从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之间进行转换的方法。



 类似资料:
  • 我有一个日期字符串 如何将UTC格式转换为以下格式 我试过这个 使用Python2.7进行编辑。 然后按照建议使用Z格式化

  • 我有一个Unix历元时间戳(以毫秒为单位),需要获取本地时间的日期字符串。 这是我的代码: 由上述函数生成的原始时间戳和结果日期、小时和所有其他值均以UTC为单位。如何更改代码以在当地时间获取它?

  • 问题内容: 我正在寻找将UTC时间字符串转换为Unix时间戳的选项。 我拥有的字符串变量是,需要将其转换为unix时间戳,例如 任何想法如何做到这一点? 问题答案: 首先,unix时间戳没有时间,但以UTC为单位。 在包有功能解析与预计解析时的布局。布局是从参考时间开始构造的。因此,在您的情况下,布局应为。使用Parse之后,您将获得一个可以调用Unix来接收Unix时间戳的结构。

  • 问题内容: 我正在使用Python处理日期,因此需要将其转换为UTC时间戳以在中使用。以下代码不起作用: 首先将日期对象转换为datetime也无济于事。我尝试从以下链接获取示例,但: 现在要么: 要么 确实有效。 如此普遍的问题:如何根据UTC将日期转换为自纪元以来的秒数? 问题答案: 如果使用UTC: 如果d在当地时区: timestamp1而timestamp2如果午夜在本地时区是不一样的时

  • 问题内容: 我需要一种简便的方法,可以在不使用任何库的情况下将日期时间戳转换为UTC(从服务器所在的任何时区)。 问题答案: 尝试getTimezone和setTimezone,请参见示例 (但这确实使用了一个类) 更新: 没有任何类,您可以尝试这样的事情: 注意:您可能还需要将时区设置回原始

  • 我有当前的毫秒utc/unix时间,现在我想将其转换为特定时区的日期时间,例如EST utc-5(纽约)。 我使用以下方法获得当前的毫秒/ unix时间: 现在我想把这个长值转换成一个特定的时区。 我如何使用 Joda time 做到这一点,因为我听说这是最好的库,但 API 对我来说似乎有点混乱。