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 ??
Réponses
Trop de publicités?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"));
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.
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