DateTimeFormatter异常

时间:2016-09-23 07:27:59

标签: java

我遇到了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

我错过了什么?

1 个答案:

答案 0 :(得分:3)

您应该使用LocalDate而不是LocalDateTime。一个是仅日期值,另一个是具有时间值的日期。

LocalDate.parse( "29/09/2016" , DateTimeFormatter.ofPattern("dd/MM/yyyy") )

请参阅DateTimeFormatter课程文档页面上的示例。