AFAIK Java almacena las fechas en variables largas como milisegundos. En consecuencia, algún día no habrá ningún valor (porque long tiene un máximo) que corresponderá al momento de ese instante. ¿Sabes cuándo sucederá?¿Cuándo se colapsará la fecha de Java?
Respuesta
Es bastante fácil de averiguar:
public class Test {
public static void main(String[] args) {
System.out.println(new java.util.Date(Long.MAX_VALUE));
}
}
Da salida (en mi caja):
Sun Aug 17 07:12:55 GMT 292278994
Puede que necesite restar un poco del Long.MAX_VALUE
para hacer frente a su zona horaria que desborda el rango de longitud, pero dará un estadio razonable :)
LOL, me gusta la forma en que piensas!Aioobe fue todo matemático mientras elegiste hacerlo programáticamente. –
Me gusta también :-) Incluso da el segundo se romperá;) – aioobe
mierda, ¡mejor me preparo para eso! – hvgotcodes
Según las actuales regulaciones leap-year el número promedio de días por año será
365 + 1/4 − 1/100 + 1/400 = 365,2425 días por año
Esto significa que, en promedio, tenemos 31556952000 milisegundos por año.
El valor larga representa el número de milisegundos desde el Epoch (1er de de enero de 1970) y el número máximo representado por un Java largo está 2 − 1, por lo que el siguiente cálculo
1970 + (2 − 1)/31556952000
revela que esta representación se desbordará años 292278994.
Esto puede, como Jon Skeet points out, ser confirmado por
-> System.out.println(new Date(Long.MAX_VALUE));
Sun Aug 17 08:12:55 CET 292278994
+1 para un enfoque matemático. –
Con números tan grandes que se utilizan como fechas, es probable que también deba tenerse en cuenta los segundos interminables y la aceleración de las mareas. – Qwerky
@Qwerky, sí, también pensé en eso y busqué mediciones astronómicas de la cantidad de milisegundos de un año, pero luego me di cuenta de que la pregunta era acerca de la implementación de fecha de Java, y esto es muy probable * no * tener en cuenta la aceleración de las mareas, etc. :-) – aioobe
- 1. ¿Cuándo se interrumpe Java Strings?
- 2. Java basurero - ¿Cuándo se acumula?
- 3. Fecha JSON a la fecha de Java?
- 4. ¿Cuándo se ejecutan las anotaciones de Java?
- 5. ¿Cuándo se llama al Constructor en Java?
- 6. Java redondeo de fecha
- 7. Formato de fecha JAVA
- 8. Java: ¿cuándo usar Iterators?
- 9. Cuándo utilizar VARCHAR y FECHA/DATETIME
- 10. Cuándo se producirá una EOFException en las transmisiones de JAVA
- 11. Cambio de Fecha de Java se retrasa una hora
- 12. Java: cuándo utilizar la palabra clave 'this'
- 13. Fecha de Java a milisegundos
- 14. ¿Cuándo se desbordará System.currentTimeMillis()?
- 15. Columnas de Fecha/Fecha de Mysql y persistencia de Java
- 16. El formato de fecha personalizado no se puede analizar. (Java)
- 17. Fecha de serialización en Java
- 18. Java: excepción de fecha inaplicable
- 19. Cuándo usar sincronizado en Java
- 20. getMilliseconds() fuera de Java Fecha
- 21. En Java, ¿cuándo se cierra una conexión URL?
- 22. En java, ¿cuándo se vuelve inalcanzable un objeto?
- 23. ¿Cuándo utiliza varargs en Java?
- 24. la conversión de enteros de fecha y hora en la fecha de Java
- 25. Java - ¿Cómo obtener la fecha actual independiente de la fecha del sistema?
- 26. Fecha mínima en Java
- 27. ¿Cómo se obtiene el rango de fecha/hora para "hoy" usando la biblioteca de fecha/hora de Joda en Java?
- 28. ¿Cuándo ocurre ERROR en Java?
- 29. ¿Cuándo estará disponible la 4ª edición de Java Language Specification?
- 30. ¿Cuándo JVM de Java descomprime archivos jar?
Creo que se espera que el sol se vuelva nova antes. Sun ya se ha convertido en nova. –
@Paul Tomblin .... whahahahaha! :) –
En realidad, tengo ese error - Java Date tiene 292 millones de años, pero de acuerdo con http://www.space.com/scienceastronomy/solarsystem/death_of_earth_000224.html la tierra tiene 500 millones de años. –