Maison >Java >javaDidacticiel >Pourquoi Java SimpleDateFormat renvoie-t-il systématiquement janvier pour le mois ?
Java SimpleDateFormat renvoie systématiquement janvier pour le mois
Lorsque vous tentez de convertir une date d'Active Directory en date Java, le résultat affiche systématiquement le mois comme janvier, bien que le mois correct soit spécifié dans la chaîne d'entrée. Ce problème provient d'une incompréhension du format de date utilisé par SimpleDateFormat.
La méthode problématique responsable de la conversion est la suivante :
<code class="java">private Date getParsedDate(String givenString) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/DD"); Date parsedDate = sdf.parse(givenString); return parsedDate; }</code>
Dans cette méthode, le SimpleDateFormat est initialisé avec le motif "aaaa/MM/JJ", qui représente respectivement l'année, le mois et le jour. Cependant, la chaîne d'entrée d'Active Directory suit un format différent : "aaaaMMjjHHmmss.SSS". La partie problématique est la représentation du mois, qui doit être en minuscule "mm" au lieu de "MM" majuscule.
Pour résoudre ce problème, la chaîne de modèle dans le constructeur SimpleDateFormat doit être remplacée par "aaaa/mm/jj " :
<code class="java">SimpleDateFormat sdf = new SimpleDateFormat("yyyy/mm/dd");</code>
Avec ce changement, Java SimpleDateFormat convertira correctement la chaîne donnée en un objet Java Date avec la valeur de mois correcte.
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!