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

Java/Kotlin如何正确解析NMEA时间戳解决字段冲突异常问题

问题根因

你写的日期匹配模式存在符号大小写误用的问题:

  • 模式中大写的DD代表年积日(即一年中的第几天,取值范围1~366),并不是你需要解析的「当月日期」字段
  • 解析流程中,程序先读取前两位12按年积日计算,得到对应日期为1月12日;紧接着读取MM位的07时,又得到月份为7月,两个字段推导出的月份值冲突,就抛出了你看到的异常。
修复方案

标准NMEA格式时间戳的字段顺序为:当日日期(dd) + 月份(MM) + 两位年份(yy) + 小时(HH) + 分钟(mm) + 秒(ss),你只需要把模式里代表年积日的大写DD,替换为代表「当月日期」的小写dd即可正常解析:

import java.time.LocalDateTime
import java.time.format.DateTimeFormatter

fun main() {
   println(LocalDateTime.parse("120722202122", DateTimeFormatter.ofPattern("ddMMyyHHmmss")))
}

上述代码运行后会输出正确的解析结果:2022-07-12T20:21:22,对应时间戳实际表示的2022年7月12日20点21分22秒。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 10:24:16