2 Stimmen

In Java gibt die Methode Date() einen Wert zurück, aber ich bin verwirrt

Ich habe Date() um das Datum meines Geburtstages zu erhalten, aber es wurde ein falscher Monat zurückgegeben. Mein Geburtstag ist 04-März-87. also gab ich eine Eingabe als,

Date birthDay= new Date(87,03,04,8,30,00);

Aber er gibt das richtige Jahr, den richtigen Tag und die richtige Uhrzeit an. Aber der Monat ist ein Problem. Er zeigt den Monat April an.

Was ist daran falsch?

7voto

Buhake Sindi Punkte 85274

Die Monate werden von 0 bis 11 eingestellt, Januar = 0, Februar = 1, ..., Dezember = 11.

Also, für April machen Sie das:

Date birthDate = new Date(87,02,04,8,30,00); //March = 2

Ich hoffe, das hilft;

EDIT

En Date Klasse mit diesem Konstruktor public Date(int year, int month, int date, int hrs, int min) ist veraltet (d.h. es wurde für @Deprecated ).

Tun Sie lieber dies.

Calendar calendar = Calendar.getInstance();
Calendar.set(1987, 2, 4, 0, 0, 0);
Date birthDate = calendar.getTime();

(Es wird das Gleiche zurückgegeben wie das, wonach Sie gefragt haben)

5voto

Greg Hewgill Punkte 882617

Der Monat im Date Die Klasse beginnt mit 0 für Januar, also ist März 2, nicht 3.

Auch die Date(int, int, int, int, int, int) Konstruktor ist veraltet, daher sollten Sie die Verwendung des Calendar Klasse statt.

Seien Sie vorsichtig mit führenden Nullen in Java - sie stehen für oktale Konstanten. Die Zahl 09 würde nicht das tun, was Sie erwarten.

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