Можете ли вы установить AM /PM в дате григорианского календаря или это то, что вы можете получить только

StackOverflow https://stackoverflow.com//questions/9667080

  •  12-12-2019
  •  | 
  •  

Вопрос

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

Мне также было интересно, все ли часы равны 24 часам по григорианскому, и это автоматически определяет am и pm?

Это было полезно?

Решение

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, то после этого у вас будет 13:00 утра).Это верно для GregorianCalendar (см. комментарий к вопросу Питера Цетински).

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

Другие советы

Calendar cal = new GreogorianCalendar();   
cal.set( Calendar.AM_PM, Calendar.AM );

Simply I did this :

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);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top