Maison >Java >javaDidacticiel >Pourquoi SimpleDateFormat analyse-t-il incorrectement les dates au format \'AAAA-MM-jj HH:mm\' et comment ce problème peut-il être résolu ?

Pourquoi SimpleDateFormat analyse-t-il incorrectement les dates au format \'AAAA-MM-jj HH:mm\' et comment ce problème peut-il être résolu ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-03 00:07:30943parcourir

Why Does SimpleDateFormat Incorrectly Parse Dates in the

Analyse de la date et de l'heure au format « AAAA-MM-jj HH:mm » à l'aide de SimpleDateFormat

Introduction au problème :

Lorsqu'ils tentent d'analyser une chaîne au format « AAAA-MM-jj HH:mm » à l'aide de SimpleDateFormat, les utilisateurs peuvent rencontrer des résultats de date et d'heure incorrects. Plus précisément, la date analysée peut ne pas correspondre à la date attendue.

Question :

Pourquoi SimpleDateFormat n'analyse-t-il pas correctement les dates dans "AAAA-MM-jj HH:mm" format? Comment ce problème peut-il être résolu ?

Réponse :

SimpleDateFormat utilise des lettres de modèle sensibles à la casse pour analyser les chaînes d'entrée. Pour le format de l'année, « AAAA » représente l'année complète avec les zéros non significatifs, tandis que « aaaa » minuscule représente l'année sans les zéros non significatifs. Dans le code fourni, la lettre de modèle « AAAA » a été utilisée de manière incorrecte, ce qui a entraîné une analyse de date inattendue.

Solution :

Pour analyser correctement la date et l'heure, utilisez "aaaa" minuscule dans le modèle :

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

Avec cette correction, le code analysera les dates dans le format attendu sans aucun problème.

Considérations supplémentaires :

Lorsque vous utilisez SimpleDateFormat, vérifiez soigneusement les lettres du modèle pour vous assurer qu'elles correspondent au format souhaité. Reportez-vous à la documentation de l'API Java pour une liste complète des lettres de modèle et leurs formats de date/heure correspondants.

Mise à jour de la base de données :

Concernant le problème de réinitialisation de l'heure 00:00 lors de la mise à jour d'une date dans une base de données, assurez-vous que le type de données de la colonne de la base de données et le composant horaire de l'objet date Java sont compatibles. Si la colonne de la base de données stocke uniquement la date, le composant horaire dans l'objet Java sera ignoré lors de l'insertion.

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