Je tire des dates d'une base de données Oracle. Ils sont définis sur un champ java.util.Date et sont en réalité des instances java.sql.Timestamp (qui est une sous-classe de Java.util.Date). Si je compare deux timestamps de deux enregistrements de base de données différents en appelant after() à la première date et en la comparant à la seconde, j'obtiens la mauvaise réponse lorsque toutes les parties de la date sont identiques sauf les millisecondes.java.util.Timestamp.after() incorrect lors de la comparaison des millisecondes?
Tous les éléments suivants doivent se traduire par « true », mais la deuxième série de chiffres ne:
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
Je sais nanos sont stockés séparément à partir de la date dans la classe Horodatage et je suis curieux de savoir si C'est le problème.
Imprimer les dates à l'aide SimpleDateFormat pour déboguer ce. – kgiannakakis
Veuillez poster le code actuel, pas un pseudo-code. Deuxièmement, il n'y a pas de 'java.util.Timestamp', voulez-vous dire' java.sql.Timestamp'? –