这样可以解决问题:
DateTimeFormatter formatter = new DateTimeFormatterBuilder() .appendPattern("yyyy-MM-dd HH:mm:ss") .appendFraction(ChronoField.MICRO_OF_SECOND, 0, 6, true) .toFormatter();System.out.println(LocalDateTime.parse("2015-05-07 13:20:22.276052", formatter));System.out.println(LocalDateTime.parse("2015-05-07 13:20:22.276", formatter));System.out.println(LocalDateTime.parse("2015-05-07 13:20:22", formatter));// output2015-05-07T13:20:22.2760522015-05-07T13:20:22.2762015-05-07T13:20:22
JiriS的答案不正确,因为它使用,
appendValue而正确的方法是使用
DateTimeFormatterBuilder.appendFraction(它也处理小数点)。差异可以在第二个系统中看到,其中
appendValue错误地解析了“2015-05-07T13:20:22.000276”。
LocalDateTime.parse(str,formatter)在大多数情况下,解析时比直接使用格式化程序更整洁。
使用生成器时,请利用
appendPattern()并
optionalStart()保持其整洁。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)