我有时间以UTC秒格式.任何人都可以协助如何在正常时间戳(dd-mm-yyyy hh:mm:ss)中将这些数字转换为GPS时间吗?我需要C代码或者算法.
更新(2017年6月):目前有18个闰秒.
GPS时间只是UTC时间,但没有闰秒.在撰写本文时,自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 - 计算插入的闰秒数(来自该Leap Seconds Inserted into the UTC Time Scale部分),从(并包括)1981-06-30条目开始.