Von Uhrzeit 5 min abziehen

bloodghost

Mitglied
Hi leute wie kann ich von einer Uhrzeit 5min abziehen?

Java:
SimpleDateFormat udf = new SimpleDateFormat("H:mm");
    		
    	String hUhrzeit = (udf.format(kalender_Auswahl.getDate()));

Habs mit Int umwandeln usw. probiert doch das haut nicht hin! hat jemand ne einfache Lösung parat?
 
Java:
public static void main(String[] args) {
	long FIVE_MINUTES_MS = 5 * 60 * 1000;
	
	Date date = new Date();
	long stamp = date.getTime();
	stamp-= FIVE_MINUTES_MS;
	
	SimpleDateFormat sdf = new SimpleDateFormat("H:mm");
	System.out.println(sdf.format(new Date(stamp)));
}

kalender_Auswahl = Sehr schlecht.
 
Java:
Calendar cal = new GregorianCalendar();
        cal.setTime(kalender_Auswahl.getDate());
        cal.add(Calendar.MINUTE, -5);        
        String hUhrzeit = (udf.format(cal.getTime()));
 
Wenn das ganze variabel sein soll (bspw. die abzuziehenden Werte sind nicht vorher bekannt, weil sie in einer GUI eingegeben werden) oder die Operationen komplizierter sind (bspw. "ziehe 2Tage, 3 Stunden und 7 Minuten ab) ist Calendar die bessere Wahl. Ich finde den aber immer etwas sperrig und mehr Resourcen als Date frisst der auch. Bei so einfachen Operationen, wie der von Dir gewünschten, rechne ich immer mit Millisekunden und Konstanten. Bei Date muss man noch beachten, dass es eigentlich immutable sein soll. Sprich man muss ein neues Date mit dem gewünschten geänderten Wert erzeugen. Etwa so:

Java:
private static final SimpleDateFormat udf = new SimpleDateFormat("H:mm");
private static inal int FIVE_MIN_MILLIS = 30000;

private static Date subtractFiveMinutes(final Date date) {

  return new Date(date.getTime()-FIVE_MIN_MILLIS);
}

public String printFiveMinsEarlier(final Date date) {

  final Date fiveMinsEarlier = subtractFiveMinutes(date);

  return udf.format(fiveMinsEarlier);
}
Das ganze ist natürlich recht statisch. Du könntest Dir noch Methoden/Konstanten für das Abziehen von variablen Minuten/Stunden/Tagen schreiben oder dann doch Calendar verwenden.
[EDIT]
Holla, da war ich ja ma richtig langsam :autsch:.
[/EDIT]
 

Neue Themen


Zurück
Oben