Heim >Java >javaLernprogramm >Warum gibt Java SimpleDateFormat jeden Monat immer den Januar zurück?
Java SimpleDateFormat gibt konsistent den Januar für den Monat zurück
Beim Versuch, ein Datum aus Active Directory in ein Java-Datum zu konvertieren, zeigt das Ergebnis konsistent das an Monat als Januar, obwohl in der Eingabezeichenfolge der richtige Monat angegeben wurde. Dieses Problem ist auf ein Missverständnis des von SimpleDateFormat verwendeten Datumsformats zurückzuführen.
Die problematische Methode, die für die Konvertierung verantwortlich ist, ist wie folgt:
<code class="java">private Date getParsedDate(String givenString) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/DD"); Date parsedDate = sdf.parse(givenString); return parsedDate; }</code>
Bei dieser Methode wird SimpleDateFormat mit initialisiert Muster „JJJJ/MM/TT“, das das Jahr, den Monat bzw. den Tag darstellt. Die Eingabezeichenfolge von Active Directory hat jedoch ein anderes Format: „yyyyMMddHHmmss.SSS“. Der problematische Teil ist die Monatsdarstellung, die in Kleinbuchstaben „mm“ statt in Großbuchstaben „MM“ erfolgen sollte.
Um dieses Problem zu beheben, sollte die Musterzeichenfolge im SimpleDateFormat-Konstruktor in „yyyy/mm/dd“ geändert werden ":
<code class="java">SimpleDateFormat sdf = new SimpleDateFormat("yyyy/mm/dd");</code>
Mit dieser Änderung konvertiert das Java SimpleDateFormat den angegebenen String korrekt in ein Java Date-Objekt mit dem richtigen Monatswert.
Das obige ist der detaillierte Inhalt vonWarum gibt Java SimpleDateFormat jeden Monat immer den Januar zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!