54 votes

Comment convertir l'heure au format 24 heures en format 12 heures ?

Dans mon application, je souhaite convertir la chaîne de 24 heures formatée CDT en chaîne de 12 heures formatée CDT. Comment convertir une chaîne de format 24 heures donnée en chaîne de format 12 heures ??

87voto

Lalit Jawale Points 71

Voici le code pour convertir le temps de 24 heures en 12 heures avec AM et PM. Remarque : - Si vous ne voulez pas AM/PM, remplacez simplement hh:mm a par hh:mm .

 import java.text.SimpleDateFormat;
import java.util.Date;

public class Main {
   public static void main(String [] args) throws Exception {
       try {       
           String _24HourTime = "22:15";
           SimpleDateFormat _24HourSDF = new SimpleDateFormat("HH:mm");
           SimpleDateFormat _12HourSDF = new SimpleDateFormat("hh:mm a");
           Date _24HourDt = _24HourSDF.parse(_24HourTime);
           System.out.println(_24HourDt);
           System.out.println(_12HourSDF.format(_24HourDt));
       } catch (Exception e) {
           e.printStackTrace();
       }
   }
}

//OUTPUT WOULD BE
//Thu Jan 01 22:15:00 IST 1970
//10:15 PM

Une autre solution:

 System.out.println(hr%12 + ":" + min + " " + ((hr>=12) ? "PM" : "AM"));

65voto

Anantha Sharma Points 4217

vous pouvez essayer d'utiliser un objet SimpleDateFormat pour convertir les formats d'heure.

 final String time = "23:15";

try {
    final SimpleDateFormat sdf = new SimpleDateFormat("H:mm");
    final Date dateObj = sdf.parse(time);
    System.out.println(dateObj);
    System.out.println(new SimpleDateFormat("K:mm").format(dateObj));
} catch (final ParseException e) {
    e.printStackTrace();
}

voici le lien javadoc pour SimpleDateFromat.

6voto

Xianwei Points 304

Pour quelqu'un avec une version inférieure de l'API, fonctionne bien avec 12:00 AM ou PM et min < 10

   String time =  ((hourOfDay > 12) ? hourOfDay % 12 : hourOfDay) + ":" + (minute < 10 ? ("0" + minute) : minute) + " " + ((hourOfDay >= 12) ? "PM" : "AM")

sortie par ex. 0:0 AM 12:00 PM 9:09 AM

merci à @Lalit Jawale réponse ci-dessus

4voto

Kai Wang Points 1637

Au cas où vous seriez curieux de connaître la différence entre K, k et H, h :

H Heure dans la journée (0-23) Nombre 0 1+

k Heure dans la journée (1-24) Nombre 24 1+

K Heure en am/pm (0-11) Nombre 0 1+

h Heure en am/pm (1-12) Numéro 12 1+

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X