某次需要将String类型转为LocalDateTime做时间比较的时候抛出异常
代码
public boolean checkOrderAndCampaignEndDate(String orderEndDate, String CampaignEndDate){
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDateTime orderTime = LocalDateTime.parse(orderEndDate,dtf);
LocalDateTime campaignTime = LocalDateTime.parse(CampaignEndDate,dtf);
return orderTime.isAfter(campaignTime);
}
异常
这里将LocalDateTime换为LocalDate就可以解决
经过查询如果需要用LocalDateTime转为 yyyy-MM-dd 这种格式
DateTimeFormatter DATEFORMATTER1 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
DateTimeFormatter DATEFORMATTER = new DateTimeFormatterBuilder().append(DATEFORMATTER1)
.parseDefaulting(ChronoField.HOUR_OF_DAY, 0)
.parseDefaulting(ChronoField.MINUTE_OF_HOUR, 0)
.parseDefaulting(ChronoField.SECOND_OF_MINUTE, 0)
.toFormatter();
//DateTimeFormatter DATEFORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDateTime ldt = LocalDateTime.parse("2021-03-29", DATEFORMATTER);