Puoi impostare AM / PM in una data GregorianCalendar o è qualcosa che puoi solo ottenere
-
12-12-2019 - |
Domanda
Ho dato un'occhiata all'API Java su GregorianCalendar e non ha visto alcun modo di impostare l'AM / PM nel suo costruttore.Puoi impostare AM / PM in una data GregorianCalendar o è qualcosa che puoi solo utilizzare un metodo Ottieni sul calendario.Guadagna tutto questo automaticamente.Sto cercando di prendere l'AM / PM e uscirò nel mio Tostring per una classe che ha un oggetto datario.Stavo per usare il metodo Ottieni sul calendario per ottenere questo.Capisco che l'AM / PM è un INT che è 0 o 1.
Mi stavo anche chiedendo se tutte le ore sono 24 ore in Gregorian e determina automaticamente l'AM e PM?
Soluzione
Calendar.get(Calendar.HOUR);
.
Dà l'ora (0-12) per il formato AM / PM.
Calendar.get(Calendar.HOUR_OF_DAY);
.
dà l'ora che va da 0-24.
fa la conversione da sola.Non è necessario dirlo.
cal.set( Calendar.AM_PM, Calendar.AM )
.
Will / potrebbe Cambia il punto del punto Questo oggetto del calendario rappresenta.(Se sono alle 13:00 avrai le 1:00 AM in seguito).Questo è vero per GregorianCalendar
(cfr. Commento alla domanda da Peter Cetinski).
BTW / SUGGERIMENTO IMO È necessario utilizzare un DateFormat
in OuPut formato preferito.
Altri suggerimenti
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);