Я взглянул на java api о GregorianCalendar и не нашел способа установить am / pm в его конструкторе. Можете ли вы установить AM / PM в дате GregorianCalendar или это то, что вы можете получить только с помощью метода get в календаре. Обрабатывает ли он все это автоматически. Я хочу взять am / pm и вывести его в моем toString для класса, который имеет объект даты. Я собирался использовать метод get в календаре, чтобы добиться этого. Я понимаю, что am / pm - это целое число, равное 0 или 1.

Все ли часы в 24-часовом формате в григорианском формате, и определяет ли он автоматически утро и вечер?

8
daveb 12 Мар 2012 в 16:33

3 ответа

Лучший ответ
Calendar.get(Calendar.HOUR);

Указывает час (0–12) для формата AM / PM.

Calendar.get(Calendar.HOUR_OF_DAY);

Указывает час в диапазоне от 0 до 24.

Он выполняет преобразование самостоятельно. Вам не нужно об этом рассказывать.

cal.set( Calendar.AM_PM, Calendar.AM )

Будет / Может ли изменить точку времени, которую представляет этот объект календаря. (Если сейчас 13:00, у вас будет 1:00 после этого). Это верно для GregorianCalendar (см. Комментарий к вопросу Питера Цетински).

Кстати / Подсказка, мне следует использовать DateFormat для вывода вашего предпочтительного формата.

40
MartinK 12 Мар 2012 в 13:00
Calendar cal = new GreogorianCalendar();   
cal.set( Calendar.AM_PM, Calendar.AM );
6
Peter Cetinski 12 Мар 2012 в 12:40

Просто сделал вот что:

Calendar calendar = new GregorianCalendar();
    int seconds = calendar.get(Calendar.SECOND);
    int minutes = calendar.get(Calendar.MINUTE);
    int hour = calendar.get(Calendar.HOUR);
    int am_pm = calendar.get(Calendar.AM_PM);
    String ampm = "ampm";
    if (am_pm == 0) {
        ampm = "AM";
    } else {
        ampm = "PM";
    }
    jLabel1.setText(hour + ":" + minutes + ":" + seconds + " " + ampm);
1
user10738240user10738240 7 Янв 2019 в 18:00