Puoi impostare AM / PM in una data GregorianCalendar o è qualcosa che puoi solo ottenere

StackOverflow https://stackoverflow.com//questions/9667080

  •  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?

È stato utile?

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);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top