如何解析这个日期/时间在Java/Kotlin?



我有这个NMEA时间戳:120722202122,我想解析它。

我试着

import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
fun main() {
println(LocalDateTime.parse("120722202122", DateTimeFormatter.ofPattern("DDMMyyHHmmss")))
}

<一口>操场

但是我得到了一个Exception:

Conflict found: Field MonthOfYear 1 differs from MonthOfYear 7 derived from 2022-01-12

我不知道Exception想告诉我什么,也不知道我的模式应该是什么样子。

我想你可能指的是d月份的天,而不是D一年中的天。

在您的模式中,您指定了年份DD的日期,因此表示月份的下一部分MM恰好是多余的。异常消息指出您指定的月份与提供的中的日期冲突。因为12th的日期在的第一个月上,而不是在7th上,因此字符串"1207..."不能解析为有效的日期时间。

如果需要一个月中的,正确的模式应该是"ddMMyyHHmmss"

对于一年中的日期,您可以使用模式"DyyHHmmss"(但示例中的字符串与之不匹配)。

Kotlin Playground的链接

根据DateTimeFormatter文档"表示一年中的一天。您需要输入月的第几天,即"dd"

最新更新