Мой клиент отправляет мне даты в ISO8601, который иногда содержит миллисекунды с зоной, а иногда без миллисекунды и зоны.
, например: 2019-05-01T06:55:43+01:00, 2019-05-01T06:55
Я использую API нового времени Java 8 (LocalDateTime
, DateTimeFormatter
и т. Д.)
Я не нашел Date
класса с форматером, который может обрабатывать как с миллисекундами и зонами, так и без этого.
Я пытаюсьсделать проверку даты ввода, используя один формат
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(templateFormat, locale);
try {
ldt = LocalDateTime.parse(context, formatter );
String result = ldt.format(formatter);
return result.equals(context);
} catch (DateTimeParseException e) {
try {
LocalDate ld = LocalDate.parse(context, formatter );
String result = ld.format(formatter);
return result.equals(context);
Я спрашиваю, есть ли форматер, который кэширует оба, я могу использовать несколько классов даты, и если мне не удается перейти к следующему, например (LocalDateTime, LocalDate, OffsetDateTime), но мне нужно использовать один форматер