Date() ->das Datum von gestern ausgeben

chilly

Neues Mitglied
Hallo liebe Community,

ich habe folgende Frage:
Wie kann ich das Datum von gestern herausfinden?

Das Datum von heute bzw. jetzt bekomme ich relativ leicht über folgenden Code

Java:
 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
 Date currTime = new Date();
 String heute = formatter.format(currTime);

Danke für eure Antworten 🙂

lg
Chilly
 
Java:
	public static void main( String[] args ) {
		GregorianCalendar cal = new GregorianCalendar();
		SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd" );
		cal.add( Calendar.DATE, -1 );
		System.out.println( sdf.format( cal.getTime() ) );

Date ist deprecated
 
Java:
String gestern = formatter.format(new Date(currTime.getTime() - 86399000));

Grad so ins blaue geraten 😉

Einfach vom aktuellen Datum 23 Stunden, 59 Minuten und 59 Sekunden abziehen 😉

PS: Die Calendar Version geht auch aber Date allgemein ist nicht deprecated, nur die meisten Methoden 😀
 
Java:
	public static void main( String[] args ) {
		GregorianCalendar cal = new GregorianCalendar();
		SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd" );
		cal.add( Calendar.DATE, -1 );
		System.out.println( sdf.format( cal.getTime() ) );

Date ist deprecated

Mal blöd gefragt ... nur fürs Verständnis: wofür braucht man eigentlich noch Date? Ich kann doch alles, was Date anbietet auch über Calender regeln.
 
deshalb ist ja date auch überwiegend deprecated 🙂. das was der TO oder Noctarius hier gemacht haben könnte man z.b. noch mit Date machen. Natürlich geht das genauso gut auch mit Calendar..

Warum jetzt nicht komplett Date deprecated ist kann ich auch nur vermuten. Man holt sich halt in vielen Programmiersprachen mit der Klasse Date und den stdkonstruktor die jetzige Zeit. Bei einer Millisekundenrechnung kann man ja nicht viel falsch machen, also kann das auch noch bleiben. Den Rest hat Sun gegen die Wand gefahren und dadurch das Java abwärstkompatibel sein muss, kann man die Date auch nicht einfach überarbeiten.
Deshalb wurde halt der Mist deprecated und neuer Mist nahm seinen Platz ein :autsch:. Aber wie gesagt, ist nur ne Vermutung (Date nicht deprecated war vor meiner Zeit 🙂).

Anscheinend gabs mit Date auch in irgendwelchen Fällen Probleme:
This method is deprecated and should not be used because SQL Date values do not have a time component.
 
Ok, danke für Dein Posting!

Ich hab in der Zwischenzeit ein wenig recherchiert. Nochmal ganz blöd gefragt: ich habe einen Spinner, und den für Datumseingaben einsetzen möchte. Dann code ich, bzw. lass von NetBeans coden:

spnDate.setModel(new javax.swing.SpinnerDateModel(new java.util.Date(), null, new java.util.Date(), java.util.Calendar.DAY_OF_MONTH));

Wenn ich das Datum auslesen möchte, frage ich ab:

Date d = (Date)spnDate.getValue();
System.out.println(d);

Umgekehrt, wenn ich versuche, den Wert in eine Calendar-Variable zu packen, bekomme ich eine Fehlermeldung:
// so nicht: Calendar cal = (Calendar) spnDate.getValue();

Wie würdet Ihr das Datum aus dem spnDate auslesen? Lässt sich eine Lösung auch ohne Einsatz von Date finden?
 
muss ich passen. habs mir jetzt 3x durchgelesen und weiss immer noch nicht ganz was du meinst 🙂

;-)

Na gut, ich versuche mal, meine Frage etwas deutlicher zu formulieren ... Ich lege einen JSpinner an, mit dem ich vom Benutzer ein Datum abfragen möchte. Dafür weise ich dem JSpinner das Model - s. mein voriges Posting - zu.

Der Anwender klickt jetzt einen Button, und ich möchte das Datum auslesen. Das mache ich mit JSpinner.getValue().

Das Object, das mir zurückgegeben wird, kann ich problemlos in ein Date casten. Ich habe testweise versucht, das Object in einen Calendar-Typ zu casten, was eine Fehlermeldung hervorgerufen hat. Also caste ich in ein Date-Typ.

Was ich jetzt wissen möchte, ist, wie Ihr ein Datum über die GUI erfragt ... ohne jetzt große Komponenten zu verwenden. Ist der Cast, wie ich ihn durchführe, Pillenpanne oder wie würdet Ihr vorgehen?

Kann ich das Datum, das mir JSpinner.getValue() zurückliefert, gleich in ein Calendar-Objekt auslesen?
 
Zuletzt bearbeitet von einem Moderator:
Ich verstehe die Frage auch nicht wirklich.
Wenn du ein SpinnerDateModel nimmst dann bekommst du halt nen Date zurück:

Java:
Date value = (Date)spinner.getValue();

Einfach auf Calendar kannst du das natürlich nicht casten, weils nunmal kein Calendar objekt ist 😉
Wenn du das ganze dennoch in nem Calendar haben willst erstellst du dir einen Calendar und rufst setTime(...); auf ???:L

EDIT:
Kann ich das Datum, das mir JSpinner.getValue() zurückliefert, gleich in ein Calendar-Objekt auslesen?

Java:
        Date value = (Date)s1.getValue();
        Calendar c = new GregorianCalendar();
        c.setTime(value);
 
ah ok jetzt. bin nicht soo bewandert in der gui programmierung.. also erstmal frag ich mich, warum du das SpinnerDateModel so umständlich instanziierst. Standardkonstuktor macht imho genau das Selbe. und zweitens verstehe ich immernoch dein Problem nicht 🙂. kannst es doch jederzeit in nen Calendar packen, wennste willst. Kommt halt darauf an, was du weiter damit machen willst.
 
ah ok jetzt. bin nicht soo bewandert in der gui programmierung.. also erstmal frag ich mich, warum du das SpinnerDateModel so umständlich instanziierst. Standardkonstuktor macht imho genau das Selbe. und zweitens verstehe ich immernoch dein Problem nicht 🙂. kannst es doch jederzeit in nen Calendar packen, wennste willst. Kommt halt darauf an, was du weiter damit machen willst.

Lass gut sein jetzt - glaube, ich hab mal wieder zu kompliziert gedacht ;-)
 

Zurück
Oben