Maison >Java >javaDidacticiel >Pourquoi SimpleDateFormat génère-t-il une date incorrecte pour une chaîne \'AAAA-MM-jj HH:mm\' ?
SimpleDateFormat génère une date/heure incorrecte pour AAAA-MM-jj HH:mm chaîne
Problème :
L'analyse d'une chaîne au format « AAAA-MM-jj HH:mm » à l'aide de SimpleDateFormat donne une date inattendue.
Exemple :
<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>
Résultat réel :
Dim. 30 décembre 08:30:00 EST 2012
Résultat attendu :
18/03/2013 08:30:00
Résolution :
Le problème réside dans la chaîne de modèle SimpleDateFormat. Le spécificateur de format pour l'année doit être "aaaa" au lieu de "AAAA".
Code corrigé :
<code class="java">SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH);</code>
Cette modification garantit que l'année est analysée comme un année à quatre chiffres, correspondant au format attendu "AAAA-MM-jj HH:mm".
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!