Tage subtrahieren von einem Date()

Rin

Mitglied
Hallo leute,

weiß is maybe bissl peinlich aber ich hab eine Date Definiert:
Java:
Date nowDate = new Date();
	 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	 String now = df.format(nowDate);
so jetzt muss ich aber 30 tage von dem heutigen Datum abziehen damit ich das mit einem Datenbank eintrag vergleichen kann und ich arbeite mit JavaDB da funktioniert das nicht über SQL weil so sachen wie Currentdate oder Dateadd(), Now() etc nicht funktionieren

hoffe ihr könnt mir da ansätze und tipps geben

danke LG Rin
 
Du kannst statt dem Date maybe den GregorianCalendar verwenden.
Dort hast du eine add Methode wo du z.b. 30 Tage abziehen kannst.
 
hmm theroetisch so...

Code:
		Date nowDate = new Date();
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		long tage30 = 1000 * 60 * 60 * 30;
		Date newDate = new Date(nowDate.getTime() - tage30);
		System.out.println("Jetzt:			" + df.format(nowDate));
		System.out.println("Heute vor 30 Tagen:	" + df.format(newDate));

aber irgendwie platzt bei mir der long ganz knapp aus den Nähten ;(
Mit 10 Tagen gehts ^^
 
hmm theroetisch so...

Code:
		Date nowDate = new Date();
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		long tage30 = 1000 * 60 * 60 * 30;
		Date newDate = new Date(nowDate.getTime() - tage30);
		System.out.println("Jetzt:			" + df.format(nowDate));
		System.out.println("Heute vor 30 Tagen:	" + df.format(newDate));

aber irgendwie platzt bei mir der long ganz knapp aus den Nähten ;(
Mit 10 Tagen gehts ^^

new Date(nowDate.getTime()-(1000*60*60*24*30l));

😀
 
... oder auch so, wie es EikeB schon erwähnt hat:

Java:
Date d = new Date();
Calendar c = Calendar.getInstance();
c.setTime(d);
c.add(Calendar.DAY_OF_MONTH, -30);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(df.format(c.getTime()));
 
danke euch allen hat mir sehr geholfen und jetzt denk ich mir xD knapp war ich eh schon drann =)

danke leute :toll::applaus:
 
Um noch einfacher auf die Millisekunden zu kommen:
Java:
long millis = TimeUnit.DAYS.toMillis(30);
Dieses Enum ist unglaublich nützlich, seit 1.5 dabei und trotzdem irgendwie gar nicht bekannt.
Schade eigentlich. 🙁
 

Neue Themen


Zurück
Oben