我有 UTC 秒格式的时间。任何人都可以协助如何将这些数字转换为 GPS 正常时间戳中的时间(dd-mm-yyyy hh:mm:ss)?我需要 C 代码,或者算法。
最佳答案
更新(2017 年 6 月):当前为 18 闰秒。
<小时/>GPS时间就是UTC时间,但没有leap seconds 。截至撰写本文时,自 GPS 纪元(1980 年 1 月 6 日 @ 00:00:00)以来已经有 15 个闰秒,因此如果是 2012/02/13 @ 12:00:00 (UTC),那么它就是 2012/GPS 时间为 02/13 @ 12:00:15。如果您想对其他时间进行正确的转换,则必须考虑每个闰秒的生效时间。
以下是如何从几个不同的“权威”来源计算当前偏移量的方法:
http://www.ietf.org/timezones/data/leap-seconds.list -- 计算从
2571782400 20 # 1 Jul 1981
行开始的行数。或者直接从 2017 年 5 月列表中的最后一个数字中减去 19(例如 37-19 = 18)。https://www.nist.gov/pml/time-and-frequency-division/atomic-standards/leap-second-and-ut1-utc-information -- 计算插入的闰秒数(来自
插入 UTC 时间刻度的闰秒
部分),从(并包括)1981-06-30
条目开始.
关于time - GPS时间、时间换算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9227888/