Je veux l’heure actuelle en millisecondes, puis le stocker au format 12 heures, mais avec ce morceau de code, j’ai un temps de formatage de 24 heures.
long timeInMillis = System.currentTimeMillis();
Calendar cal1 = Calendar.getInstance();
cal1.setTimeInMillis(timeInMillis);
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/mm/yyyy HH:mm:ss a");
dateforrow = dateFormat.format(cal1.getTime());
quelqu'un peut-il suggérer des modifications pour obtenir les résultats souhaités?
Remplacez HH
par hh
par
long timeInMillis = System.currentTimeMillis();
Calendar cal1 = Calendar.getInstance();
cal1.setTimeInMillis(timeInMillis);
SimpleDateFormat dateFormat = new SimpleDateFormat(
"dd/MM/yyyy hh:mm:ss a");
dateforrow = dateFormat.format(cal1.getTime());
Notez que dd/mm/yyyy
- vous donnera minutes au lieu du mois .
En se référant à SimpleDataFormat JavaDoc :
Letter | Date or Time Component | Presentation | Examples
---------------------------------------------------------
H | Hour in day (0-23) | Number | 0
h | Hour in am/pm (1-12) | Number | 12
Je le retrouve aussi à la dure. H vs h, pour 24 heures vs 12 heures!
Bonjour, j'ai testé le code ci-dessous qui a bien fonctionné:
long timeInMillis = System.currentTimeMillis();
Calendar cal1 = Calendar.getInstance();
cal1.setTimeInMillis(timeInMillis);
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/mm/yyyy hh:mm:ss a");
dateFormat.format(cal1.getTime());
Oui, a confirmé que le simple fait d'utiliser hh au lieu de HH a résolu mon problème.
Changé de ceci:
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm aa");
Pour ça:
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm aa");
Vous pouvez toujours utiliser HH pour stocker l'heure si vous ne voulez pas vous soucier de stocker et de traiter avec AM/PM. Ensuite, lorsque vous le récupérez, utilisez hh.
Vous pouvez l'essayer comme ça
Calendar c= Calendar.getInstance();
SimpleDateFormat sdf= new SimpleDateFormat("dd/MM/yyyy hh:mm:ss a");
String str=sdf.format(c.getTime());
Il suffit de suivre le code
public static String getFormatedDate(String strDate,StringsourceFormate,
String destinyFormate) {
SimpleDateFormat df;
df = new SimpleDateFormat(sourceFormate);
Date date = null;
try {
date = df.parse(strDate);
} catch (ParseException e) {
e.printStackTrace();
}
df = new SimpleDateFormat(destinyFormate);
return df.format(date);
}
et passer la valeur dans la fonction comme ça,
getFormatedDate("21:30:00", "HH:mm", "hh:mm aa");
ou consultez cette documentation SimpleDateFormat pour StringsourceFormate et destinyFormate.
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/mm/yyyy hh:mm:ss a");
utilisez hh
au lieu de HH