2012-03-12 7 views
5

Zerknąłem na aplikację java o GregorianCalendar i nie widziałem żadnego sposobu ustawienia am/pm w jego konstruktorze. Czy możesz ustawić AM/PM w kalendarzu GregorianCalendar lub czy jest to coś, co można uzyskać tylko za pomocą metody get w kalendarzu. Czy to wszystko obsługuje automatycznie. Szukam podjęcia am/pm i wyprowadzenia go w moim toString dla klasy, która ma obiekt daty. Zamierzałem użyć metody get w kalendarzu, aby to uzyskać. Rozumiem, że am/pm to int, które wynosi 0 lub 1.Czy można ustawić AM/PM w kalendarzu gregoriańskim? Czy jest to coś, co można uzyskać tylko

Zastanawiam się również, czy wszystkie godziny są w gregoriańskim 24 godziny i automatycznie określają am i pm?

Odpowiedz

29
Calendar.get(Calendar.HOUR); 

Daje godzinę (0-12) dla formatu AM/PM.

Calendar.get(Calendar.HOUR_OF_DAY); 

Daje godzinę w zakresie od 0 do 24.

Dokonuje konwersji samodzielnie. Nie musisz tego mówić.

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

Will/Could zmiana czas punkt ten obiekt kalendarz reprezentuje. (Jeśli jest 1:00 po południu, będziesz miał 1:00 później). Dotyczy to GregorianCalendar (patrz komentarz do pytania Petera Cetinskiego).

Przy okazji, powinieneś użyć DateFormat, aby ouput swój preferowany format.

+0

Dzięki MartinK, bardzo doceniane. Myślę, że wykorzystam HOUR_OF_DAY, bo to brzmi najlepiej dla tego, co robię. Dzięki będę używał DateFormat. Używam gdzie indziej w moim kodzie. Wielkie dzięki. Dziękuję również Dilum i Peter – daveb

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

@ Jigar/@ Peter, czy wiesz, czy jest to nadpisane, jeśli 'cal.set (Calendar.HOUR_OF_DAY, ...)' jest wywoływane * po * ustawieniu AM/PM? –

+0

Połączenia z ustawieniami są w większości przypadków kumulatywne. Jednak ustawienie pola może wpływać na inne pola w zależności od pola i implementacji kalendarza. Zobacz http://docs.oracle.com/javase/6/docs/api/java/util/Calendar.html –

+0

Cześć Dilum i Peter, nie nadpisuję kal.set (Calendar.HOUR_OF_DAY, ...). W tej chwili nie ustawiam też AM/PM. Udało mi się ustawić datę kalendarza gregoriańskiego na 24 godziny, ale zastanawiałem się, jak najlepiej wyświetlić AM/PM w moich metodach toString. W moim toString wydrukuję mój getmethod, który zwraca datę/czas obiektu daty. Nie w tej chwili zwraca się am lub pm. – daveb

Powiązane problemy