Pregunta

Quiero convencer al director de arquitectura para que incluya el Tiempo Joda frasco en nuestro producto.

¿Conoces alguna desventaja al usarlo?

Creo que Joda-Time necesita actualizarse constantemente por los archivos que incluye.Y eso es una desventaja.Tal vez yo estoy equivocado.

¿Podrías aportar algo de claridad sobre el tema?

¿Fue útil?

Solución

He tenido experiencias positivas casi en su totalidad con Joda Time. Mi único problema fue cuando se trata de construir mi propia zona horaria (por razones legítimas, se lo aseguro :) Tengo algunas excepciones muy raras, y la documentación no era muy bueno para ese caso en particular.

Sin embargo, en su mayor parte ha sido un placer de usar -. Inmutabilidad hace que el código sea mucho más fácil para razonar acerca, y el hilo de la seguridad para los formateadores es enormemente útil

Sí, hay archivos para mantener al día - pero al menos puede mantenerlos al día. No es como que contienen cosas que eran innecesarias con el material incorporado en Java, es sólo que con el mecanismo de Java que simplemente no podía mantener la información al igual que las zonas horarias al día sin hackery significativa!

Básicamente, 1 para el uso de Joda Time. La fecha / hora de la API Java es una de las peores partes de la plataforma Java, la OMI.

Otros consejos

En mi opinión, el inconveniente más importante en Joda-Time se trata de precisión: muchas bases de datos de tienda con marcas de tiempo microsegundos (o incluso nanosegundo ) de precisión. Joda tiempo va sólo a milisegundos . Esto no es aceptable para mí: todas las clases "modelo de datos" que utilizo necesidad de reflejar la precisión completa de los datos en mi base de datos. Aproximaciones o truncamientos de mis datos por una biblioteca simplemente no lo cortan.

Este es el razonamiento detrás de la elección de una precisión de milisegundos, tomada de la JSR 310 lista de correo:

  

"Joda-Time eligió utilizar milisegundos, ya que hizo conversiones a fecha y el calendario más fácil." - S. Colebourne

Más fácil para quién? El autor de la biblioteca, es de suponer ... incorrecta decisión de diseño, en mi opinión, cuando casi todos los tiempos almacenar bases de datos a la precisión de microsegundos / nanosegundo. El desconocimiento de los valores de base de datos es preocupante.

El mayor problema que teníamos cuando se utiliza Tiempo Joda estaba con la integración con la primavera y la tapicería, ya que ambos querían utilizar el incorporado en la fecha y la hora. Estábamos escribiendo constantemente envoltorios en getters / setters de fecha y hora: o se almacenaría como Joda Time y un conjunto de captadores / setters pasan a través y el otro se convertirían sobre la marcha, y algunas clases almacenan internamente como Java fecha / hora, y la Joda captador / definidor tuvieron que cambiar sobre la marcha.

Básicamente, era un dolor de cabeza debido a que las clases se denominan de manera similar, y si no se puede obtener toda su arquitectura (incluyendo otras bibliotecas está integrando) para cambiar a Joda vez, se le va a escribir más código envoltorio de lo que eres probabilidad de ahorrar mediante el uso de las bibliotecas Joda.

Anfitriones de parlamentos una presentación de Stephen Colebourne sobre JSR-310, Señor.Colebourne, autor de Joda-Time y JSR-310.Comienza explicando las debilidades del soporte estándar de fecha/hora en Java y por qué querrías usar una alternativa.Puede resultar útil mostrarle esta presentación a su director de arquitectura.Parece que no puedo hacer un enlace profundo

La razón por la que Joda-Time actualiza su archivo de zona horaria con bastante frecuencia es porque los datos de la zona horaria cambian todo el tiempo, a menudo con poca antelación (hoy en slashdot: segundo intercalar añadido el 2008-12-31) y no siempre con motivación científica (p. ej.Recuerdo que algún estado insular del Pacífico cambió su zona horaria para ser el primer país en entrar en el año 2000).

En el pasado, me he encontrado con empresas que no quieran incorporar el software de código abierto de terceras partes, o al menos requerían el abogado de la empresa para certificar que la licencia no iba a exponerlos a ningún tipo de responsabilidad o tener un efecto viral en su producto.

Al igual que con cualquier biblioteca de terceros, probablemente debería ponerlo en control de código fuente para que pueda encontrar la versión que se envía con comunicados particulares de su código en caso de que algo va mal.

La elección de milisegundos que el tiempo continuo subyacente es bueno para la implementación de calendarios de la antigüedad, y calendarios especiales. A diferencia de muchos contadores, el contador de milisegundos de 64 bits tiene una buena cobertura gama de calendarios de la antigüedad, con propiedades de vuelco en exceso de +/- 260 millones de años.

No maneja los segundos intercalares. Ésto es una cosa buena. Una transición sin problemas, se propone por la gente de reloj atómico para permitir que los sistemas que no despliegan segundos intercalares para ajustar sus relojes incrementalmente más de 100 segundos para dar cabida a la segunda corrección salto.

Mantenimiento de tablas de zona horaria también será un problema.

El continuo subyacente también permite un viejo calendario francés y el reloj que divide un día en 10 intervalos de tiempo llamados métrica en lugar de 24 horas. El calendario chino clásico divide un día en 100 incrementos, cada uno de poco más de 14 minutos de duración. Todos estos calendarios se pueden implementar y coordinada en el tiempo continuo subyacente milisegundos.

El principal problema con que es proveedor lockin al menos hasta que se convierte en parte de la norma.

En su mayor parte, lo usaría anhela para almacenar cualquier información de la fecha de negocios en una base de datos. Esto me da la flexibilidad para ajustar la precisión como lo crea conveniente. En la mayoría de los casos que acabo de convertirlos a java.util.Date.

Las zonas horarias yo trataría a ser un problema de nivel de presentación que una cuestión de datos. Esto simplifica la base de datos y aumenta la portabilidad desde bases de datos pueden representar cosas temporales de diferentes maneras.

La clase Calendar estándar me proporciona algunas funciones de manipulación de la fecha la cual puedo convertir a milisegundo ya que los datos época.

En cuanto a la precisión de nanosegundos que almacenaría que como un desplazamiento desde 0 como una columna larga separada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top