我遇到了Java中的DateTimeFormatter问题。
我有以下代码:
DateTimeFormatter format = DateTimeFormatter.ofPattern("dd/MM/yyyy");
LocalDateTime startDate = LocalDateTime.now();
LocalDateTime endDate = LocalDateTime.parse(ceremonyDetails.getDate(), format);
System.out.println(ChronoUnit.DAYS.between(startDate, endDate)); format);
哪个应该在现在和日期之间打印天数,格式为'dd / MM / yyyy',例如'29 / 09/2016'。
但是,我收到此错误:
java.time.format.DateTimeParseException:Text '29 / 09/2016'不能 解析:无法从TemporalAccessor获取LocalDateTime: {},ISO解析为2016-09-29的java.time.format.Parsed类型] root cause java.time.DateTimeException:无法获取LocalTime 来自TemporalAccessor:{},ISO解析为2016-09-29的类型 java.time.format.Parsed
我错过了什么?
答案 0 :(得分:3)
您应该使用LocalDate
而不是LocalDateTime
。一个是仅日期值,另一个是具有时间值的日期。
LocalDate.parse( "29/09/2016" , DateTimeFormatter.ofPattern("dd/MM/yyyy") )
请参阅DateTimeFormatter
课程文档页面上的示例。