Dado que Date tiene un método denominado "after (Date)" y Timestamp tiene un método que lo reemplaza "after (Timestamp)", ¿por qué después del método en Date en el siguiente código?Cómo funcionan los tipos de parámetros covariantes en java
La pregunta sobre los resultados inesperados se le preguntó here.
java.sql.Timestamp one = new java.sql.Timestamp(1266873627200L);
java.sql.Timestamp two = new java.sql.Timestamp(1266873627000L);
java.util.Date oneDate = (java.util.Date) one;
java.util.Date twoDate = (java.util.Date) two;
System.out.println("one: " + oneDate.getTime());
System.out.println("two: " + twoDate.getTime());
if (oneDate.after(twoDate)) {
System.out.println(oneDate.getTime() + " after " + twoDate.getTime());
} else {
System.out.println(oneDate.getTime() + " not after " + twoDate.getTime());
}
resultados
one: 1266873627200
two: 1266873627000
1266873627200 not after 1266873627000
El método después de la fecha no se compara nanos –
@s_t_e_v_e: Ah -. Leí un poco la salida. '! X.after (y)' no es lo mismo que 'y.after (x)' - que es lo que sugiere tu salida. –
OK. Debería ser más claro ahora –