Конвертер дат JAVA GSON: как получить полночь в 00:00 вместо 12:00 - PullRequest
0 голосов
/ 26 ноября 2018

Я использую GSON, чтобы получить Json с другими данными.Все работает нормально, но когда пользователь вводит 00:30:00 AM в половине второго ночи, он преобразуется в 12:30:00 AM.Я хотел бы иметь это как 00:30:00 утра.Есть ли способ обойтись без изменения чего-либо еще в преобразовании даты?

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Я бы предпочел убедить GSON предоставить мне нужный формат, но извините, я не знаю GSON, поэтому не могу сказать вам, возможно ли это.Однако, если это не так, переформатировать полученную строку несложно, если вы знаете, как:

    DateTimeFormatter gsonTimeFormatter = DateTimeFormatter.ofPattern("hh:mm:ss a");
    DateTimeFormatter desiredTineFormatter = DateTimeFormatter.ofPattern("KK:mm:ss a");
    String timeStringFromGson = "12:30:00 AM";
    LocalTime time = LocalTime.parse(timeStringFromGson, gsonTimeFormatter);
    String formattedTime = time.format(desiredTineFormatter);
    System.out.println(formattedTime);

Вывод этого фрагмента:

00: 30:00 AM

Буквы шаблонов формата hh (строчные буквы) и KK (прописные буквы) означают часы в пределах AM или PM, но первая идет от 01 до 12, вторая от 00 до11, так что вы получите желаемый час, в том случае, если час от GSON оказался равным 12.

0 голосов
/ 26 ноября 2018

Установите формат даты при создании объекта gson из Gson Builder.

Gson gson = new GsonBuilder().setDateFormat("HH:mm:ss").create();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...