You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Julia中验证GPS毫秒时间转UTC时间的方法是否正确

问题:已做UTC修正的GPS毫秒时间转UTC时间的逻辑是否正确?

我需要确认将LIDAR输出的已做UTC修正的GPS毫秒时间转换为UTC时间的逻辑是否正确,以下是我的Julia代码:

time_adj = capture_time + gps_correction = 1.3812925228868198e9
where gps_correction = 1e9
const gps_epoch = DateTime(1980, 1, 6)

unix2datetime(time_adj + datetime2unix(gps_epoch))

执行结果为Dates.DateTime("2023-10-14T04:22:02.886"),请问该转换方式是否正确?


你的转换逻辑是正确的,但有几个细节需要明确

核心逻辑验证

GPS时间的起始基准是1980年1月6日00:00:00 UTC,而Unix时间的起始点是1970年1月1日00:00:00 UTC。你的代码本质是:

  1. 先算出GPS epoch对应的Unix时间戳(datetime2unix(gps_epoch))
  2. 把从GPS epoch到目标时间的秒级偏移量(time_adj)加到这个Unix时间戳上,得到目标时间的Unix时间戳
  3. 最后通过unix2datetime转换为标准UTC DateTime对象

这个思路完全符合时间转换的底层规则,最终得到的2023-10-14T04:22:02.886结果是正确的。

需要留意的细节

  • 你提到输入是GPS毫秒时间,但代码里的time_adj是秒级数值(1.38e9秒≈43.7年,正好对应1980到2023的时间跨度)。如果原始LIDAR输出确实是毫秒单位,你需要先将其除以1000转换为秒,否则转换结果会比实际时间早1000倍。
  • 关于gps_correction = 1e9:通常GPS时间与UTC时间的差值是闰秒(截至2023年为18秒),但你这里用了10亿秒,看起来是用来将原始capture_time调整为从GPS epoch开始的秒偏移量。只要time_adj确实代表"从1980-01-06到目标时间的总秒数",这个修正就是合理的,不会影响转换逻辑的正确性。

内容的提问来源于stack exchange,提问作者F612

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 18:12:47