Maison >Java >javaDidacticiel >Quelles sont les différences entre kk:mm, HH:mm et hh:mm dans SimpleDateFormat de Java ?

Quelles sont les différences entre kk:mm, HH:mm et hh:mm dans SimpleDateFormat de Java ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-09 18:45:02312parcourir

What are the differences between kk:mm, HH:mm, and hh:mm in Java's SimpleDateFormat?

Simplifier les formats d'heure : comprendre kk:mm vs. HH:mm vs. hh:mm dans SimpleDateFormat

Dans cette enquête de programmation, nous explorez les distinctions subtiles entre trois formats d'heure couramment utilisés dans la classe SimpleDateFormat de Java : kk:mm, HH:mm et hh:mm.

Variations de format :

  • kk:mm: Format 24 heures, les heures vont de 01 à 24.
  • HH:mm: Format 24 heures, les heures vont de 00 à 23.
  • hh:mm: Format 12 heures, plage d'heures de 01 à 12, avec indicateur AM/PM.

Intuition et mise en œuvre :

Pour démontrer ces différences, considérons le code suivant extrait :

SimpleDateFormat broken = new SimpleDateFormat("kk:mm:ss");
SimpleDateFormat working = new SimpleDateFormat("HH:mm:ss");
SimpleDateFormat working2 = new SimpleDateFormat("hh:mm:ss");

broken.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));
working.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));
working2.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));

System.out.println(broken.format(epoch));
System.out.println(working.format(epoch));
System.out.println(working2.format(epoch));

Résultats et analyse :

Sortie :

24:00:00
00:00:00
05:30:00
  • kk:mm : Affiche 24:00:00, indiquant minuit comme 00:00.
  • HH:mm: Affiche 00:00:00, représentant correctement minuit comme 00:00.
  • hh:mm: Affiche de manière inattendue 05:30:00, malgré le fuseau horaire UTC spécifié (ce qui devrait entraîner minuit).

Cette anomalie survient car le fuseau horaire n'est pas explicitement défini pour travailler2. Par défaut, SimpleDateFormat assume le fuseau horaire local, qui peut ne pas s'aligner sur le format UTC prévu.

Conclusion :

Comprendre les nuances de kk:mm, HH : Les formats mm et hh:mm dans SimpleDateFormat sont cruciaux pour un formatage précis de l’heure. En sélectionnant soigneusement le format approprié et en s'assurant que le fuseau horaire est correctement configuré, les développeurs peuvent représenter efficacement l'heure de la manière souhaitée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn