Maison > Java > javaDidacticiel > Comment convertir correctement une date de calendrier au format « aaaa-MM-jj » en Java ?

Comment convertir correctement une date de calendrier au format « aaaa-MM-jj » en Java ?

Barbara Streisand
Libérer: 2024-12-18 02:53:09
original
232 Les gens l'ont consulté

How to Correctly Convert a Calendar Date to

Convertir la date du calendrier au format "aaaa-MM-jj" en Java

En Java, convertir une date du calendrier au format "aaaa- Le format "MM-jj" est une tâche essentielle pour diverses applications.

Incorrect Approche :

L'utilisation de la classe SimpleDateFormat avec le modèle "aaaa-MM-jj" sur un objet Date obtenu à partir d'un calendrier peut ne pas toujours donner le résultat souhaité. Par exemple, l'extrait de code suivant produira "Wed Sep 26 00:00:00 IST 2012" au lieu de "2012-09-26" :

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
Date date = cal.getTime();             
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
String date1 = format1.format(date);  
Copier après la connexion

Approche correcte :

Pour convertir correctement une date de calendrier au format "aaaa-MM-jj", vous devez comprendre la différence entre une Date et un LocalDateTime.

Java 8 :

Dans Java 8 et versions ultérieures, vous pouvez utiliser la classe LocalDateTime, qui représente une date et une heure sans heure zone.

LocalDateTime ldt = LocalDateTime.now().plusDays(1);
DateTimeFormatter formmat1 = DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.ENGLISH);
String formatter = formmat1.format(ldt);
System.out.println(formatter);
Copier après la connexion

Avant Java 8 :

Si vous utilisez des versions Java antérieures à 8, vous devriez envisager d'utiliser la bibliothèque ThreeTen Backport.

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
String formatted = format1.format(cal.getTime());
Copier après la connexion

N'oubliez pas que même si le code ci-dessus produit initialement le résultat souhaité chaîne "2012-09-26", son analyse en une date entraînera "mercredi 26 septembre 00:00:00 EST 2012." En effet, Date représente le nombre de millisecondes depuis un moment fixe et son formatage ne modifie que sa représentation sous forme de chaîne.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal