Nach Java API public boolean before(Date when)
Java Date Vergleich
wahr, wenn und nur wenn der Zeitpunkt dieses Datum repräsentiert Objekt ist streng früher als der Augenblick, dargestellt durch, wenn; falsch sonst.
Jetzt muss ich prüfen, ob Datumseingabe durch den Benutzer größer ist als das aktuelle Datum dann nur wird es den Eingang sonst werfen Ausnahme akzeptieren, so habe ich versucht, unter
if(userInputDate.before(new Date())){
throw new Exception("Some Message");
}
Aber wenn beide Zeitpunkt gleich sind dann auch es geht nach innen if
Anweisung .Das bedeutet, es wird Zeit berechnen und dann überprüfen, anstatt Datum zu vergleichen? Wenn ja, wie kann ich mein Problem lösen?
Kann mir jemand sagen, wie man dies überprüfen?
, was Sie haben, ist gleichbedeutend mit 'if (userInputDate.getTime()
zapl
Wenn Sie die Methode "Date.before (Date t)" verwenden, überprüft sie jeden Datumsparameter, einschließlich Millisekunden. Wenn Sie das Datum mit 'new Date()' erstellt haben, erstellt es ein neues Datum mit der aktuellen Zeit (fast genau in der Millisekunde), so dass die Wahrscheinlichkeit, dass beide Daten gleich sind, sehr unwahrscheinlich ist. Also, in Ihrem Fall würde ich vorschlagen, Sie verwenden (wie @zapl gesagt hat) - "System.currentTimeMillis()" statt. – AsafSavich
Ich denke es liegt daran, dass die 'Date' Klasse auch die Millisekunden enthält. Wenn Sie dann 'userInputDate' mit einem' new Date() 'vergleichen, ist es sehr wahrscheinlich, dass der erste vor dem zweiten auftritt. –