Не удалось преобразовать из формата ЧЧ: мм: сс.ССС'З 'в формат ЧЧ: ММ Java

Я пытаюсь конвертировать в формат HH: MM в Java

Вот мой код

String date = "18:30:00.000Z";

    try {
        ZonedDateTime parsed = ZonedDateTime.parse(date);

        ZonedDateTime z = parsed.withZoneSameInstant(ZoneId.systemDefault());

        DateTimeFormatter fmt = DateTimeFormatter.ofPattern("hh:mm a", Locale.ENGLISH);
        System.out.println(fmt.format(z));
    } catch(Exception e) {
        e.printStackTrace();
    }

Что-то не так в моем коде

Вот исключение

java.time.format.DateTimeParseException: Text ཎ:30:00.000Z' could not be parsed at index 0

Всего 1 ответ


Строка, которую вы пытаетесь проанализировать, это не дата и время, а только время. Таким образом, тип ZonedDateTime не подходит для использования здесь. OffsetTime этого используйте OffsetTime , который является классом для хранения только времени (без даты).

String input = "18:30:00.000Z";
OffsetTime time = OffsetTime.parse(input);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("h:mm a");
String result = formatter.format(time);
System.out.println(result);

Выход:

6:30 PM

Есть идеи?

10000