首先,我们的需求是: 將“yyyy-mm-dd”字符串日期格式转换为 LocalDateTime时间格式 传统做法: DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd"); item.setSuppActiveBtime(LocalDateTime.parse(item.getSuppActiveBtimeV(),df));
但是实际运用中,以上做法,会报错,格式化不了。
百思不得其解,突然发现,分开格式化,可以,请看下。
final DateTimeFormatter formatter = new DateTimeFormatterBuilder() .appendPattern("yyyy-MM-dd[['T'hh][:mm][:ss]]") .parseDefaulting(ChronoField.HOUR_OF_DAY, 0) .parseDefaulting(ChronoField.MINUTE_OF_HOUR, 0) .parseDefaulting(ChronoField.SECOND_OF_MINUTE, 0) .parseDefaulting(ChronoField.MILLI_OF_SECOND, 0) .toFormatter(); final LocalDateTime sendTime = LocalDateTime.parse(item.getSuppActiveBtimeV(), formatter); final LocalDateTime endTime = LocalDateTime.parse(item.getSuppActiveEtimeV(), formatter);
惊喜的发现,不报错了。