Estoy creando un sistema basado en la web que se utilizará en países de todo el mundo. Un tipo de datos que deben almacenarse son las fechas y horas.
¿Cuáles son los pros y los contras de usar las clases de fecha y hora de Java en comparación con las bibliotecas de terceros como Joda time ? Supongo que estas bibliotecas de terceros existen por una buena razón, pero nunca las he comparado realmente.
Respuestas:
EDITAR: Ahora que Java 8 ha sido lanzado, si puedes usar eso, ¡hazlo!
java.time
es incluso más limpio que Joda Time, en mi opinión. Sin embargo, si está atascado antes de Java-8, siga leyendo ...Max preguntó por los pros y los contras de usar Joda ...
Pros:
java.time
en Java 8, ya que son al menos algo similaresContras:
DateTimeZoneBuilder
efectivo en el pasado. Sin embargo, este es un caso de uso muy raro.Para responder a la idea de oxbow_lakes de construir efectivamente su propia API pequeña, aquí están mis puntos de vista de por qué esta es una mala idea:
fuente
java.time.*
para Java 6 y 7: threeten.org/threetenbpBueno, a menos que tengas la intención de esperar a Java 8, esperando que implementen una mejor API para manipular la fecha y la hora, sí, por favor, usa Joda-Time . Es un ahorro de tiempo y evita muchos dolores de cabeza.
fuente
La respuesta es: depende
JODA (y JSR-310) es una biblioteca de fecha / hora completamente funcional, que incluye soporte para su uso con múltiples sistemas de calendario.
Personalmente, descubrí que JODA está demasiado lejos en términos de complejidad para lo que necesito. Los 2 errores principales (en mi humilde opinión) en el Java estándar
Date
y lasCalendar
clases son:Aunque JODA aborda estos problemas, le resultará bastante fácil desarrollar sus propias clases
YearMonthDay
yInstant
, que utilizan las clases de Java bajo el capó para los cálculos "calendáricos" reales. Entonces no tiene que familiarizarse con una API de> 100 clases, un mecanismo de formato / análisis diferente, etc.Por supuesto, si necesita una representación completa de diferentes cronologías (por ejemplo, hebreo) o desea poder definir su propio sistema de calendario imaginario (por ejemplo, para un juego que está escribiendo), entonces tal vez JODA o JRS-310 sea para usted. Si no, entonces sugeriría que rodar el suyo es posiblemente el camino a seguir.
El líder de especificaciones JSR-310 es Stephen Colebourne, quien escribió JODA en primer lugar, por lo que reemplazará lógicamente a JODA.
fuente
Todo depende de lo que esté haciendo con las fechas. Si simplemente las persiste, las fechas integradas en Java probablemente harán todo lo que desee. Sin embargo, si está haciendo una extensa manipulación de fecha y hora, probablemente sea mejor con Joda.
fuente
Deberías usar una biblioteca Joda-Time, porque:
representación de fecha.
Exception in thread "main" org.joda.time.IllegalFieldValueException: Cannot parse "2014-02-31": Value 31 for dayOfMonth must be in the range [1,28].
Puede que le guste esta página para obtener más detalles: http://swcodes.blogspot.com/
fuente