Java 8 的 java.time 包难以解析输入使用 DateTimeFormatter 类时带有秒分数部分的字符串。尝试使用格式模式“yyyyMMddHHmmssSS”解析类似“2011120312345655”的字符串会导致 DateTimeParseException,尽管文档表明“SS”应表示秒值的小数部分。
在 Java 9 之前,提出了一种解决方法:
<code class="java">DateTimeFormatter dtf = new DateTimeFormatterBuilder() .appendPattern("yyyyMMddHHmmss") .appendValue(ChronoField.MILLI_OF_SECOND, 3) .toFormatter();</code>
但是,此解决方法并不能完全解决该问题,因为它无法处理以下用例只有两个图案符号“SS”。还建议使用其他字段或外部库的替代解决方案。
与此问题相关的 JDK 问题已标记为已解决Java 9。这表明 java.time 包解析秒小数值的能力在此版本中得到了改进。
以上是`java.time` 可以解析日期字符串中的秒分数值吗?的详细内容。更多信息请关注PHP中文网其他相关文章!