2012-03-12 62 views
5

我看了一下關於GregorianCalendar的java api,並沒有看到在其構造函數中設置am/pm 的任何方式。你可以在AMG/PM中設置GregorianCalendar日期,還是隻能在日曆上使用get方法獲取?它會自動處理所有這些嗎?我正在尋找am/pm並將其輸出到我的toString中,以獲得具有日期對象的類。我打算在日曆上使用get方法來獲取它。據我所知,在AM/PM是int是0或1。你能設置AM/PM在GregorianCalendar日期還是隻能得到

我也想知道如果所有時間是在公曆24小時,它自動確定上午和下午?

回答

29
Calendar.get(Calendar.HOUR); 

給出用於AM/PM格式小時(0-12)。

Calendar.get(Calendar.HOUR_OF_DAY); 

給出從0-24小時不等。

它自己進行轉換。你不需要告訴它。

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

請問/莫非變化點這個時間日曆對象表示。 (如果是下午1:00,您將在凌晨1:00之後)。這是GregorianCalendar(請參閱Peter Cetinski的問題評論)。

Btw /提示您應該使用DateFormat輸出您的首選格式。

+0

感謝MartinK,非常感謝。我想我會使用HOUR_OF_DAY,因爲這聽起來對我正在做的事情最好。謝謝我將使用DateFormat。我一直在我的代碼中使用其他地方。非常感謝。還要感謝Dilum和Peter – daveb 2012-03-12 13:14:38

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

@ Jigar/@彼得,你知道這是否是,如果'cal.set(Calendar.HOUR_OF_DAY,...)'被稱爲* *後設置AM/PM重寫? – 2012-03-12 12:42:05

+0

調用設置大部分是累積的。但是,根據日曆的字段和實施情況,設置字段可能會影響其他字段。見http://docs.oracle.com/javase/6/docs/api/java/util/Calendar.html – 2012-03-12 12:48:52

+0

嗨Dilum和彼得,我不覆蓋cal.set(Calendar.HOUR_OF_DAY,...)。目前我還沒有設置AM/PM。我能夠將公曆日曆設置爲24小時,但現在想知道如何最好地使AM/PM顯示在我的toString方法中。在我的toString中,我打印getmethod,它返回日期對象的日期/時間。它現在不在上午或下午返回。 – daveb 2012-03-12 12:52:39