Heim  >  Artikel  >  Java  >  Warum gibt Java SimpleDateFormat jeden Monat immer den Januar zurück?

Warum gibt Java SimpleDateFormat jeden Monat immer den Januar zurück?

Barbara Streisand
Barbara StreisandOriginal
2024-10-24 07:57:30193Durchsuche

Why Is Java SimpleDateFormat Consistently Returning January for Month?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn