Maison > Java > javaDidacticiel > Pourquoi SimpleDateFormat produit-il une date et une heure incorrectes lors de l'analyse de \'AAAA-MM-jj HH:mm\' ?

Pourquoi SimpleDateFormat produit-il une date et une heure incorrectes lors de l'analyse de \'AAAA-MM-jj HH:mm\' ?

Linda Hamilton
Libérer: 2024-11-03 19:15:03
original
1097 Les gens l'ont consulté

Why does SimpleDateFormat produce the wrong date and time when parsing

SimpleDateFormat produisant une date et une heure incorrectes lors de l'analyse de "AAAA-MM-jj HH:mm"

Lors de la tentative de conversion d'une représentation sous forme de chaîne de une date et une heure au format « AAAA-MM-jj HH:mm » à un objet Date à l'aide de SimpleDateFormat, des résultats incorrects peuvent être obtenus. Comme illustré ci-dessous, le code produit une sortie inattendue :

<code class="java">Date newDate = null;
String dateTime = "2013-03-18 08:30";
SimpleDateFormat df = new SimpleDateFormat("YYYY-MM-dd HH:mm", Locale.ENGLISH);
df.setLenient(false);
try {
    newDate = df.parse(dateTime);
} catch (ParseException e) {
    throw new InvalidInputException("Invalid date input.");
}</code>
Copier après la connexion

La sortie attendue devrait être "Jeudi 18 mars 08:30:00 EST 2013", mais le code produit par erreur "Dim. 30 décembre 08:30". :00 EST 2012".

La cause du problème réside dans le motif AAAA mal saisi dans le Constructeur SimpleDateFormat. Le modèle correct pour le format de date et d'heure spécifié est aaaa, avec y minuscule pour les années.

Pour résoudre ce problème, modifiez le modèle SimpleDateFormat comme suit :

<code class="java">SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH);</code>
Copier après la connexion

En mettant à jour le modèle , l'objet SimpleDateFormat analysera désormais correctement la chaîne de date et d'heure, ce qui donnera la sortie souhaitée : "Jeudi 18 mars 08:30:00 EST 2013".

Il est important de noter que même si Lenient est désactivé dans ce code, il n'est généralement pas recommandé de le désactiver. Dans la plupart des cas, il est préférable de gérer les erreurs d'analyse avec élégance plutôt que d'analyser potentiellement des données incorrectes.

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