Prüfen ob Date in der Vergangenheit liegt

JavaUncle

Mitglied
Hallo

Ich habe ein Date-Objekt und möchte prüfen, ob es von Heute oder gestern oder später ist. Es reicht zu wissen, das es von gestern oder später ist.

Einfach nur Timestamps vergleichen reicht da nicht. Denn vor 2 Sekunden ist auch in der Vergangenheit, aber rein Gefühlsmäßig ist das immer noch "heute".

Bietet Java dafür etwas oder muss man zu fuß gehen?
 
Warum vergleichst du dann nicht nur den Tag und das Datum ohne Uhrzeit?
Du kannst auch vor jedem vergleich Stunde und Minute auf 0 Setzen und dann vergleichen. Oder hab ich was übersehen?
 
Hallo,

mit Jodatime ist das alles ein wenig einfacher:
Java:
/**
 * 
 */
package de.tutorials;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

import org.joda.time.DateTime;

/**
 * @author Thomas.Darimont
 * 
 */
public class DateExample {

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception {
        withJavaUtilDate();

        System.out.println("####");

        withJodaTime();
    }

    private static void withJodaTime() throws Exception {

        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd.MM.yyyy");
        Date yesterday = simpleDateFormat.parse("26.05.2008");

        System.out.println(yesterday.before(new DateTime().toDateMidnight()
                .toDate()));
    }

    /**
     * @throws ParseException
     */
    private static void withJavaUtilDate() throws ParseException {
        GregorianCalendar now = new GregorianCalendar();
        GregorianCalendar today = new GregorianCalendar(now.get(Calendar.YEAR),
                now.get(Calendar.MONTH), now.get(Calendar.DAY_OF_MONTH));

        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd.MM.yyyy");
        Date yesterday = simpleDateFormat.parse("26.05.2008");

        System.out.println(yesterday.before(today.getTime()));
    }
}

Gruß Tom
 
Zurück