tho*_*and 10 java java-8 java-time
LocalDateTime.parse("20150901023302166", DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"))
Run Code Online (Sandbox Code Playgroud)
给出错误:
java.time.format.DateTimeParseException:无法在索引0处解析文本'20150901023302166'
Tun*_*aki 11
解决方法是使用自己构建格式化程序DateTimeFormatterBuilder并为每个字段固定宽度.此代码生成正确的结果.
public static void main(String[] args) {
DateTimeFormatter formatter = new DateTimeFormatterBuilder()
.appendValue(ChronoField.YEAR, 4)
.appendValue(ChronoField.MONTH_OF_YEAR, 2)
.appendValue(ChronoField.DAY_OF_MONTH, 2)
.appendValue(ChronoField.HOUR_OF_DAY, 2)
.appendValue(ChronoField.MINUTE_OF_HOUR, 2)
.appendValue(ChronoField.SECOND_OF_MINUTE, 2)
.appendValue(ChronoField.MILLI_OF_SECOND, 3)
.toFormatter();
System.out.println(LocalDateTime.parse("20150901023302166", formatter));
}
Run Code Online (Sandbox Code Playgroud)
所以看起来格式化程序在从模式构建时存在问题.在搜索OpenJDK JIRA之后,似乎这确实是一个错误,如JDK-8031085中所引用并计划在JDK 9中修复.
| 归档时间: |
|
| 查看次数: |
223 次 |
| 最近记录: |