Проверка Анте Меридием и пост Меридием - PullRequest
0 голосов
/ 01 апреля 2019

Я использовал LocalTime, предоставленный Java 8 для форматирования времени от формата 1-24 до формата 1-12 в следующем коде.

String  localTime = LocalTime.parse("08:59:00", DateTimeFormatter.ofPattern("HH:mm:ss"))
            .format(DateTimeFormatter.ofPattern("hh:mm:ss a"));

А теперь со следующим кодом я получилФормат 1-12 часов

LocalTime localTime1 = LocalTime.parse(localTime, DateTimeFormatter.ofPattern("hh:mm:ss a"));

Мой вопрос: есть ли какие-либо методы API, предоставляемые LocalTime, для получения анте или поста в указанное время.Или как получить с чистыми API, вместо того, чтобы манипулировать строками с помощью среза и вырезания.

Ответы [ 2 ]

2 голосов
/ 01 апреля 2019

Я не уверен насчет элегантности этого, но если вы хотите получить логическое значение, представляющее, AM это или PM, вы можете сделать:

boolean isPM = localTime.getHour() >= 12;

Эта переменная isPM будет false, если время AM, и true для PM.

1 голос
/ 02 апреля 2019

есть ли какие-либо методы API, предоставляемые LocalTime

Метод get.Нам нужно использовать его вместе с константой перечисления ChronoField.AMPM_OF_DAY.Он кодирует анте-меридием в 0 и отправляет меридием в 1.

    int amPmOf1159 = LocalTime.of(11, 59).get(ChronoField.AMPM_OF_DAY);
    System.out.println(amPmOf1159);
    int amPmOf1200 = LocalTime.of(12, 0).get(ChronoField.AMPM_OF_DAY);
    System.out.println(amPmOf1200);

Вывод:

0
1
...