Geting gestern - Die Methode getDate () vom Typ Date ist veraltet

8

Ich versuche, das Datum von gestern zu bekommen. Also schreibe ich die nächste Funktion:

%Vor%

Aber es gibt mir die nächste Warnung:

%Vor%

und es funktioniert nicht.

Danke für Ihre Hilfe.

    
Adam Sh 18.02.2013, 14:09
quelle

5 Antworten

16

Datum # getDate () ist eine veraltete Methode nach JDK 1.1. Sie sollten stattdessen die Klasse Kalender verwenden um Daten zu manipulieren.

Von API :

  

Vor JDK 1.1 hatte die Klasse Date zwei zusätzliche Funktionen. Es   erlaubte die Interpretation der Daten als Jahr, Monat, Tag, Stunde, Minute,   und zweite Werte. Es erlaubt auch das Formatieren und Parsen von Datum   Saiten. Leider war die API für diese Funktionen nicht zugänglich   zur Internationalisierung. Ab JDK 1.1 sollte die Kalenderklasse sein   Wird zum Konvertieren zwischen Datums- und Uhrzeitfeldern und der DateFormat-Klasse verwendet   sollte verwendet werden, um Datumszeichenfolgen zu formatieren und zu analysieren. Die entsprechende   Methoden in Date sind veraltet.

Es ist auch in der API eindeutig dokumentiert mit Datum # getDate () , um Calendar#get(Calendar.DATE);

zu verwenden
  

Veraltet. Ab JDK Version 1.1 ersetzt durch   Calendar.get (Kalender.DAY_OF_MONTH)

%Vor%     
PermGenError 18.02.2013, 14:12
quelle
1

Benutze java.util.Calendar , um es zu tun. Oder versuchen Sie JODA .

    
duffymo 18.02.2013 14:10
quelle
1

Vermeiden Sie java.util.Date & amp; .Kalender

Die akzeptierte Antwort ist korrekt. Die Klassen java.util.Date und .Calendar sind jedoch bekanntermaßen mühsam. Vermeide sie. Verwenden Sie entweder Joda-Time oder die neue Paket java.time (in Java 8).

Separate Datum-Zeit-Manipulation von der Formatierung

Außerdem vermischt der Code in der Frage Datum-Uhrzeit-Arbeit mit Formatierung. Trennen Sie diese Aufgaben, um Ihren Code zu vereinfachen und das Testen / Debuggen zu vereinfachen.

Zeitzone

Die Zeitzone ist in der Date-Time-Arbeit entscheidend. Wenn Sie das Problem ignorieren, wird die Standardzeitzone der JVM angewendet. Eine bessere Vorgehensweise besteht darin, immer anzugeben, anstatt sich auf den Standardwert zu verlassen. Auch wenn Sie die Standardeinstellung möchten, rufen Sie getDefault explizit auf. .

Der Beginn des Tages wird durch die Zeitzone definiert. Ein neuer Tag dämmert früher in Paris als in Montréal. Wenn Sie also mit "gestern" den ersten Moment dieses Tages meinen, dann sollten Sie (a) eine Zeitzone angeben und (b) rufen Sie withTimeAtStartOfDay .

Joda-Zeit

Beispielcode in Joda-Time 2.3.

%Vor%

Oder konvertieren Sie von einem java.util.Date-Objekt.

%Vor%

Ziehe einen Tag ab, um zum gestrigen Tag (oder Tag davor) zu gelangen.

%Vor%

Joda-Time und java.time parsen / generieren standardmäßig Zeichenfolgen im Format ISO 8601 .

%Vor%

Verwenden Sie einen Formatierer für ein vollständiges Datum als vierstelligen Jahr, zweistelligen Monat des Jahres und zweistelligen Tag des Monats (JJJJ-MM-TT). Ein solcher Formatierer ist bereits in Joda-Time definiert.

%Vor%     
Basil Bourque 13.06.2014 20:18
quelle
0

Sie können die Kalender -Klasse für die gleiche Aufgabe verwenden:

%Vor%     
Giudark 18.02.2013 14:20
quelle
0

Folgendes funktioniert für mich

%Vor%     
Fizer Khan 16.09.2014 14:06
quelle

Tags und Links