У меня есть следующий метод Java (версия 8), который анализирует входную строку даты и времени, которая выглядит как '01-FEB-25 12.00.00.000000 AM UTC', чтобы получить что-то, что может понять база данных Oracle SQL, но Я продолжаю получать сообщение об ошибке «java.time.format.DateTimeParseException: текст '01-FEB-25 12.00.00.000000 AM UTC' не удалось проанализировать по индексу 3».
private String convertDateTime(String dateTimeInput) {
if (csDateTime != null) {
try {
// Incoming date time looks like '01-FEB-25 12.00.00.000000 AM UTC'
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("dd-MMM-yy hh.mm.ss.SSSSSS a z", Locale.ENGLISH);
DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// Parse the input string into ZonedDateTime
ZonedDateTime zonedDateTime = ZonedDateTime.parse(dateTimeInput, inputFormatter);
// Convert to LocalDateTime in UTC
LocalDateTime dateTime = zonedDateTime.withZoneSameInstant(ZoneId.of("UTC")).toLocalDateTime();
return dateTime.format(outputFormatter);
} catch (DateTimeParseException e) {
LOG.error("Failed to parse date: {}", dateTimeInput, e);
return null;
}
}
return null;
}
Я также попробовал приведенный ниже код, используя DateTimeFormatterBuilder, но он все равно не может проанализировать входную строку. Может ли кто-нибудь обнаружить проблему в моем коде и указать мне правильный путь? направление?
DateTimeFormatter inputFormatter = new DateTimeFormatterBuilder()
.parseCaseInsensitive()
.appendPattern("dd-MMM-yy hh.mm.ss.SSSSSS a z")
.optionalStart()
.appendFraction(ChronoField.NANO_OF_SECOND, 0, 6, true)
.optionalEnd()
.appendPattern(" a z") // AM/PM and time zone
.toFormatter(Locale.ENGLISH);
DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
ZonedDateTime zonedDateTime = ZonedDateTime.parse(dateTimeInput, inputFormatter);
LocalDateTime dateTime = zonedDateTime.withZoneSameInstant(ZoneId.of("UTC")).toLocalDateTime();
return dateTime.format(outputFormatter);
Подробнее здесь: https://stackoverflow.com/questions/790 ... e-issue-is