Estoy sacando fechas de una base de datos Oracle. Se establecen en un campo java.util.Date y en realidad son instancias de java.sql.Timestamp (que es una subclase de Java.util.Date). Si comparo dos de estas marcas de tiempo de dos registros de bases de datos diferentes al llamar después de() en la primera fecha y compararla con la segunda, recibo la respuesta incorrecta cuando todas las partes de la fecha son las mismas, excepto por los milisegundos.java.util.Timestamp.after() incorrecto al comparar milisegundos?
Todo lo siguiente debe dar lugar a "verdadero", sin embargo, el segundo conjunto de números no:
firstDate = 1/1/2000 12:00:20:00
secondDate = 1/1/2000 12:00:10:00
result = firstDate.after(secondDate);
result is TRUE <-- EXPECTED RESULT
firstDate = 1/1/2000 12:00:00:10
secondDate = 1/1/2000 12:00:00:00
result = firstDate.after(secondDate);
result is FALSE <-- NOT EXPECTED, result should be TRUE
Sé nanos se almacenan por separado de la instancia Fecha en la clase de marca de hora y estoy ansioso por ver si este es el problema.
Imprimir las fechas usando SimpleDateFormat con el fin de depurar este. – kgiannakakis
Por favor, publique el código real, no un pseudo-código. En segundo lugar, no existe tal cosa como 'java.util.Timestamp', ¿quiso decir' java.sql.Timestamp'? –