我有这个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"