2012-03-12 13 views
5

Ho dato un'occhiata alla java api su GregorianCalendar e non ho visto alcun modo di impostare l'am/pm nel suo costruttore. Puoi impostare AM/PM in una data di GregorianCalendar o è qualcosa che puoi ottenere usando un metodo get sul calendario. Gestisce tutto questo automaticamente. Sto cercando di prendere l'am/pm e l'output nel mio toString per una classe che ha un oggetto data. Stavo per usare il metodo get sul calendario per ottenere questo. Capisco che l'am/pm è un int che è 0 o 1.Puoi impostare AM/PM in una data di GregorianCalendar o è qualcosa che puoi ottenere solo

Mi chiedevo anche se tutte le ore sono 24 ore in gregorian e determina automaticamente l'am e pm?

risposta

29
Calendar.get(Calendar.HOUR); 

Dà l'ora (0-12) per il formato AM/PM.

Calendar.get(Calendar.HOUR_OF_DAY); 

Fornisce l'ora compresa tra 0-24.

Fa la conversione da solo. Non hai bisogno di dirlo.

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

Will/Could cambiamento il tempo del punto questo oggetto calendario rappresenta. (Se è l'1:00 PM, dopo l'1: 00 AM). Questo è vero per GregorianCalendar (vedi commento alla domanda di Peter Cetinski).

Btw/Suggerimento: è necessario utilizzare DateFormat per eseguire il formato preferito.

+0

Grazie Martin, molto apprezzato. Penso che userò HOUR_OF_DAY perché suona meglio per quello che sto facendo. Grazie, userò il DateFormat. Ho usato altrove nel mio codice. Grazie molto. Grazie anche a Dilum e Peter – daveb

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

@ Jigar/@ Peter, sai se questo è sovrascritto se 'cal.set (Calendar.HOUR_OF_DAY, ...)' viene chiamato * dopo * impostazione AM/PM? –

+0

Le chiamate da impostare sono per la maggior parte cumulative. Tuttavia, l'impostazione di un campo può influenzare altri campi a seconda del campo e dell'implementazione del calendario. Vedi http://docs.oracle.com/javase/6/docs/api/java/util/Calendar.html –

+0

Ciao Dilum e Peter, non sto ignorando il cal.set (Calendar.HOUR_OF_DAY, ...). Al momento non sto neanche programmando AM/PM. Sono stato in grado di impostare la data del calendario gregoriano come 24 ore, ma ora mi chiedevo quale fosse il modo migliore per visualizzare l'AM/PM nei miei metodi toString. Nel mio toString stampo il mio getmethod che restituisce la data/ora dell'oggetto data. Al momento non ritorna o pm. – daveb