8
votes

Comment savoir si un lieu local utilise 12 ou 24 heures de temps en Java?

en Java, je veux imprimer juste l'heure de la journée en heures et en minutes et je veux changer correctement entre, par exemple, "13h00" et "13h00" selon les paramètres régionaux. Comment puis-je faire cela?


0 commentaires

3 Réponses :


4
votes

Utilisez le Java.Text.dateFormat classe pour créer la sortie correcte du temps donné.

A partir de l'API: P>

Pour formater une date pour la locale actuelle, utilisez l'une des méthodes d'usine statiques: P>

myString = DateFormat.getDateInstance().format(myDate);


0 commentaires

6
votes

La locale ne précise pas explicitement si les formats de 12 ou 24 heures sont préférés. Au lieu de cela, les formats de date spécifiques aux paramètres régionaux sont gérés par les paramètres régionaux définissant directement les formats.

  • Si vous souhaitez simplement utiliser le format temporel "Locale préféré", appelez simplement l'un des trois dateformat.getimeInstance (...) méthodes statiques et utilisez tout ce que dateformat il revient. < / p>

  • Si vous avez un SimpleDateDormat instance dans vos mains, vous pouvez (si vous étiez prêt à faire une quantité importante de codage), appelez topattern () et analyser le modèle résultant à Voyez s'il utilisait une dates de 12 ou 24 heures ... ou non ni. Vous pouvez même modifier le modèle pour utiliser le "autre" formulaire, puis appeler applypattern (string) pour modifier le format.


1 commentaires

Merci beaucoup! Puisque je veux vraiment juste l'imprimer dateformat.gettimeInstance (dateformat.short, somélocale) a fait le tour pour moi. Je n'attends certainement pas à une situation où j'ai besoin de savoir quel format de l'heure est utilisé: p.



0
votes

J'ai écrit une petite fonction qui détecte si la locale actuelle utilise 24 ou 12 heures: xxx


1 commentaires

Cela ne fonctionnera pas si vous avez une locale différente par défaut, pour laquelle les marqueurs AM / PM sont différents.