Año 2038 Error en toda la web, pero esto parece ser un problema de Unix. ¿Cómo afectará esto a Java Date?¿Por qué un programador de Java debería preocuparse por el error del año 2038?
Respuesta
¿Qué te parece que hace? La clase Date
de Java almacena un long
de 64 bits (no de 32 bits, como con el Y2K38). También almacena milisegundos, lo que disminuye el rango, pero solo ligeramente (equivalente a ~ 10 bits).
En Java, tenemos el error 292278994 del año.
+1 - pero seguramente Java en Unix a veces necesita hablar fechas con el O/S subyacente. Es poco probable que sea un problema real (hasta 2038), pero tal vez merezca una mención. – Steve314
@Steve, es cierto, pero creo que la pregunta es específicamente sobre 'java.util.Date', no sobre nada relacionado con' time_t'. –
¿Cómo obtiene una aplicación Java su tiempo en primer lugar? Java podría manejar bien las fechas, pero GIGO aún podría ser un problema. – BCS
No creo que afecte a la clase Java Date en lo que respecta al programador. Ya está usando valores de 64 bits. Puedo ver que es un problema si está usando un almacén de datos que todavía usa valores de 32 bits. No espero ver demasiados sistemas operativos de 32 bits en 27 años.
Aún menos en 28 años. – Steve314
que no se han corregido para solucionarlo. Imagino que algunos sistemas integrados aún pueden usar 32 bits. –
Estoy seguro de que dentro de 28 años ni siquiera los sistemas incorporados usarán 32 bits –
Esto es probablemente un remanente de los viejos C días cuando los tipos de datos de fecha volcaron en 2038. Puede ser un problema con algunas realmente antiguas aplicaciones, pero no para Java. Bostezo.
Java y los tiempos no están restringidos solo a la clase Date.
¿De dónde vienen a menudo las fechas/horas? A menudo, desde System.currentTimeMillis, que es , un método nativo. Por lo general, no está implementado en Java. El tipo de devolución es largo, pero eso significa poco, ya que el método nativo puede devolver cualquier valor que simplemente encaje en un largo.
Todo dependerá del sistema operativo y su implementación del JRE.
Confiar en la presencia de sistemas de 64 bits podría ser ingenuo, ya que aparentemente hay muchos sistemas integrados que son de 32 bits, y seguirán existiendo.
En general, Java está expuesto al problema 2038.
Esto no es realmente una respuesta. Pero algunos mensajes lo han hecho bien. Java es compatible con 2038, pero no cumple 10000 (si pone un largo en el constructor de fecha que representa algo después de 9999, no funcionará y devolverá un número raro), pero sí, 2147483648 definitivamente no es el valor máximo permitido en la fecha de Java clase.
- 1. ¿Cuándo preocuparse por endianness?
- 2. ¿Por qué preocuparse por las últimas comas en Node.js?
- 3. Cuándo dejar de preocuparse por un navegador
- 4. Como programador de Java aprendiendo Python, ¿qué debería buscar?
- 5. MS Visual C++: ¿Cuándo debería preocuparse por usar las convenciones de llamadas?
- 6. ¿por qué tenemos que calcular el tiempo del año 1970?
- 7. ¿Por qué preocuparse por hacer un widget javascript/jquery puro cuando puedo cargarlo en un iframe?
- 8. ¿En qué tipo de cosas debería concentrarse un programador aficionado?
- 9. ¿Por qué debería aprender C++
- 10. ¿Por qué debería pop() tomar un argumento?
- 11. ¿Por qué java applets/javafx no se usan ampliamente? (por qué no debería usarlos para RIA)
- 12. ¿Por qué debería evitar el uso de Runtime.exec() en java?
- 13. ¿Debería preocuparse por cuentas falsas/inicios de sesión en un sitio web?
- 14. En el programador de GHC RTS, ¿por qué debería marcar una capacidad como libre?
- 15. ¿Por qué debería un Comparador implementar Serializable?
- 16. días Contar por año
- 17. Flex: Error # 2038: El archivo de E/S de error
- 18. ¿Por qué debería preocuparme por Entity Framework?
- 19. Buscar el nombre del día por año, mes y día
- 20. ¿Por qué debería usarse el modismo "PIMPL"?
- 21. ¿Por qué debería usar MXML?
- 22. ¿Por qué debería usar un CAAnimationGroup?
- 23. ¿Por qué debería evitar usar el Dispatcher?
- 24. ¿Por qué debería bloquearse el depurador VS2010?
- 25. ¿Por qué debería/no debería usar el operador "nuevo" para instanciar una clase, y por qué?
- 26. ¿Por qué debería querer aprender Haskell?
- 27. IO: Error # 2038 jquery uploadify
- 28. ¿Por qué debería usar Flex?
- 29. Por qué * debería * usamos EventHandler
- 30. ¿Por qué debería aprender COM?
¿Habrá otra película de Roland Emmerich sobre eso? –
No es un error. Todo el mundo sabe que el mundo terminará en 2038. La única pregunta es cómo. Mi conjetura es la plaga zombie. – Steve314
No debería molestar a nadie ... como todos sabemos, la tierra termina en 2012 de todos modos. Escribe algunas cosas interesantes en su lugar – chzbrgla