在java中有没有办法将两种不同的日期时间格式解析为LocalDateTime或Instant?
我们如何验证给定字符串的两种格式yyyy-MM-dd和yyyy-MM-dd'T'HH:MM:SSX,该字符串可以是这两种格式中的任何一种,并将其转换为Instant或LocalDateTime在java中有没有办法将两种不同的日期时间格式解析为LocalDateTime或Instant?,date,java-8,datetime-format,Date,Java 8,Datetime Format,我们如何验证给定字符串的两种格式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 temporalAccesso
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]修复了它