Можете ли вы установить AM /PM в дате григорианского календаря или это то, что вы можете получить только
-
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);