SimpleDateFormat analyse incorrectement "AAAA-MM-jj HH:mm"
Lors de la tentative d'analyse d'une chaîne au format "AAAA-MM -dd HH:mm" à une date, certains développeurs rencontrent des résultats de date inattendus. Cela se produit lors de l'utilisation de la classe SimpleDateFormat avec le paramètre lenient défini sur false.
L'extrait de code suivant illustre le problème :
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.");
}
Ce code produit une date incorrecte :
Sun Dec 30 08:30:00 EST 2012 (wrong)
Pour résoudre ce problème, vérifiez que le format de l'année spécifié dans le modèle SimpleDateFormat est "aaaa" minuscule au lieu de "AAAA" majuscule.
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH);
En effectuant cet ajustement, le code analysera correctement la chaîne "AAAA-MM-jj HH:mm". Consultez la documentation SimpleDateFormat pour plus d'informations.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3