2,5 ¿Qué necesidad de la comunidad de Java se aborda en las especificaciones propuesto?
Actualmente Java SE tiene dos API de fecha y hora separadas - java.util.Date y java.util.Calendar. Ambas API son consistentemente descritas como difíciles de usar por los desarrolladores de Java en weblogs y foros . Notablemente, ambos usan un índice cero durante meses, que es la causa de muchos errores . Calendario también ha sufrido de muchos errores y problemas de rendimiento durante los años, principalmente debido a almacenar su estado de dos maneras diferentes internamente.
Un error clásico (4639407) impidió que se crearan ciertas fechas en un objeto de calendario . Se podría escribir una secuencia de código que podría crear una fecha en algunos años pero no en otros, teniendo el efecto de evitar que algunos usuarios de ingresen sus fechas de nacimiento correctas. Esto fue causado por la clase de calendario que solo permite una ganancia de horario de verano de de una hora en verano, cuando históricamente era más 2 horas durante la segunda guerra mundial . Si bien este error es ahora fijado, si en algún momento en el futuro un país eligió introducir ganancia de horario de verano de plus tres horas en verano, entonces la clase de calendario volvería a estar rota.
La API Java SE actual también sufre en entornos de subprocesos múltiples. Las clases inmutables son conocidas por ser inherentemente seguras para subprocesos ya que su estado no se puede cambiar. Sin embargo, tanto Date como Calendar son modificables, lo que requiere que los programadores consideren clonar y enhebrar de forma explícita. Además, la falta de seguridad de subprocesos en DateTimeFormat no es ampliamente conocida, y ha sido la causa de muchos problemas difíciles de subprocesamiento de seguimiento de .
Además de los problemas con los que clases Java SE tiene para la fecha y hora, que no tiene clases para modelar otros conceptos. Las fechas de zona no horaria o intervalos de tiempos, períodos y no tienen representación de clase en Java SE. Como resultado, los desarrolladores utilizan con frecuencia un int para representar un período de tiempo , con javadoc especificando la unidad.
La falta de una fecha completa y modelo de tiempo también se traduce en muchas operaciones comunes siendo más complicado de lo que deberían ser . Por ejemplo, calcular la cantidad de días entre dos fechas es un problema particularmente difícil en presente.
Este JSR abordará el problema de un modelo fecha y hora completa, incluyendo fechas y horas (con y sin zonas de tiempo), duraciones y períodos de tiempo, intervalos, el formato y análisis.
Vea también: [Fechas Java: ¿Cuál es la clase correcta de usar?] (Https://stackoverflow.com/q/8511430/642706) –