Невозможно преобразовать из формата ЧЧ: мм: сс.SSS'Z 'в формат ЧЧ: ММ Java - PullRequest
2 голосов
/ 16 января 2020

Я пытаюсь преобразовать в формат ЧЧ: ММ в 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 '18:30:00.000Z' could not be parsed at index 0

1 Ответ

4 голосов
/ 16 января 2020

Строка, которую вы пытаетесь проанализировать, это не дата и время, а только время. Поэтому тип ZonedDateTime не подходит для использования здесь. Вместо этого используйте 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
...