对于给定的字符串,我们如何验证两种格式“ yyyy-MM-dd”和“ yyyy-MM-dd'T'HH:mm:SSX”,可以是两种格式中的任何一种,并将其转换为Instant还是LocalDateTime?
LocalDateTime dateTime;
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd[\'T\'HH:mm:SSX]");
TemporalAccessor temporalAccessor = formatter.parseBest(now, LocalDateTime::from, LocalDate::from);
if (temporalAccessor instanceof LocalDateTime) {
dateTime = (LocalDateTime)temporalAccessor;
} else {
dateTime = ((LocalDate)temporalAccessor).atStartOfDay();
}
使用上述格式时,它始终解析为LocalDate并切分时间部分。
将格式更改为“ yyyy-MM-dd [\'T \'HH:mm:ssX]”已修复。