Como la mayoría de la gente está muy consciente de esto, la API de Java para manejar fechas de calendario (específicamente las clases java.util.Date
y java.util.Calendar
) es un desastre terrible.¿Por qué la API de Java de fecha (java.util.Date, .Calendar) es un desastre?
De la parte superior de mi cabeza:
- fecha es mutable
- Fecha representa una marca de tiempo, no es una fecha
- hay manera fácil de convertir entre componentes de la fecha (día, mes, año .. .) y fecha
- Calendar es torpe para usar, y trata de combinar diferentes sistemas de calendario en una clase
This post lo resume bastante bien, y JSR-310 también expande estos problemas.
Ahora mi pregunta es:
¿Cómo estas clases convertirlo en el SDK de Java? La mayoría de estos problemas parecen bastante obvios (especialmente si la fecha es mutable) y deberían haber sido fáciles de evitar. Entonces, ¿cómo sucedió? ¿La presión del tiempo? ¿O son obvios los problemas solo en retrospectiva?
Me doy cuenta de que esto no es estrictamente una cuestión de programación, pero me parece interesante entender cómo el diseño de la API podría ir tan mal. Después de todo, los errores son siempre una buena oportunidad de aprendizaje (y tengo curiosidad).
una doble negación es siempre mala forma ... Fecha Fecha es mutable no no es inmutable. –
Afortunadamente, las nuevas API de fecha y hora de JSR-310, basadas en Joda-Time, se enviarán en Java 7. –
Y DateFormat no está diseñado para ser seguro para subprocesos ... (http://bugs.sun.com /bugdatabase/view_bug.do?bug_id=4093418) – Arjan