2012-03-12 1 views
5

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

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

ответ

29
Calendar.get(Calendar.HOUR); 

Дает час (0-12) для формата AM/PM.

Calendar.get(Calendar.HOUR_OF_DAY); 

Дает время в диапазоне от 0 до 24.

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

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

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

Btw/Hint imo вы должны использовать DateFormat для вывода ваш предпочтительный формат.

+0

Спасибо MartinK, очень ценится. Я думаю, что буду использовать HOUR_OF_DAY, поскольку это звучит лучше всего для того, что я делаю. Спасибо, я буду использовать DateFormat. Я использовал в другом месте в своем коде. Большое спасибо. Спасибо также Dilum и Peter – daveb

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

@ Jigar/@ Peter, вы знаете, переопределено ли это, если 'cal.set (Calendar.HOUR_OF_DAY, ...)' вызывается * после * установки AM/PM? –

+0

Звонки на набор по большей части являются кумулятивными. Однако установка поля может влиять на другие поля в зависимости от поля и реализации Календаря. См. Http://docs.oracle.com/javase/6/docs/api/java/util/Calendar.html –

+0

Привет, Дилум и Питер, я не переопределяю cal.set (Calendar.HOUR_OF_DAY, ...). На данный момент я не устанавливаю AM/PM. Я смог установить gregorian calender date как 24 часа, но теперь задавался вопросом, как лучше всего получить AM/PM для отображения в моих методах toString. В моей toString я печатаю свой getmethod, который возвращает дату/время объекта date. В настоящий момент он не возвращается или утром. – daveb