44 Stimmen

Warum gibt Java's Date.getYear() 111 statt 2011 zurück?

Ich habe ein bisschen Probleme mit dem Parsen einer Zeichenfolge Datum zu einer Date Objekt. Ich verwende ein DateFormat um die Zeichenkette zu parsen, und wenn ich den Wert des Datums ausdrucke, erhalte ich das, was ich erwarte.

Aber wenn ich versuche, den Tag, den Monat oder das Jahr abzurufen, erhalte ich die falschen Werte. Das Jahr ist zum Beispiel 2011, aber wenn ich .getYear() Es gibt mir 111. Ich habe keine Ahnung, warum das so ist. Hier ist der entsprechende Codeabschnitt:

    Date dateFrom = null;

    String gDFString = g.getDateFrom();

    System.out.println(gDFString);

    DateFormat df = new SimpleDateFormat("dd/MM/yyyy");

    try {
        dateFrom = df.parse("04/12/2011");

        System.out.println(dateFrom);

        System.out.println(dateFrom.getYear());
    } catch (ParseException e) {
        e.printStackTrace();
    }

Wenn ich ausdrucke dateFrom erhalte ich Sun Dec 04 00:00:00 GMT 2011 Das ist das, was man erwarten würde. Aber Drucken .getYear() gibt zurück. 111 .

Ich muss in der Lage sein, den Tag, den Monat und das Jahr des Datums für ein Zeitreihendiagramm abzurufen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X