¿Puedes configurar AM/PM en una fecha del calendario gregoriano o es algo que solo puedes obtener?

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

  •  12-12-2019
  •  | 
  •  

Pregunta

Eché un vistazo a la API de Java sobre Gregoriancalendar y no vi ninguna forma de establecer el AM/PM en su constructor.¿Puedes configurar AM/PM en una fecha de GregorianCalendar o es algo que solo puedes obtener usando un método de obtención en el calendario?¿Maneja todo esto automáticamente?Estoy buscando tomar am/pm y enviarlo a mi toString para una clase que tiene un objeto de fecha.Iba a utilizar el método get del calendario para obtener esto.Entiendo que am/pm es un int que es 0 o 1.

También me preguntaba si todas las horas son 24 horas en gregoriano y determina automáticamente las horas de la mañana y de la tarde.

¿Fue útil?

Solución

Calendar.get(Calendar.HOUR);

Da la hora (0-12) para el formato AM/PM.

Calendar.get(Calendar.HOUR_OF_DAY);

Da la hora entre 0 y 24.

Hace la conversión por sí solo.No es necesario que lo digas.

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

voluntad/podría cambiar el momento puntual que representa este objeto de calendario.(Si es la 1:00PM tendrás la 1:00AM después).Esto es cierto para GregorianCalendar (ver comentario a la pregunta de Peter Cetinski).

Por cierto/Sugerencia en mi opinión, deberías usar un DateFormat dar salida su Formato preferido.

Otros consejos

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);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top