2012-01-03 16 views
18

Estoy usando Joda, y estoy haciendo una clase para almacenar la marca de tiempo de una transacción y persistir a una base de datos. ¿Debo usar un Instant o un DateTime?Joda DateTime vs Instantáneo

Respuesta

22

Utilice el que mejor se adapte a su modelo. Instant es una representación de un valor de marca de tiempo milisegundo, DateTime es un objeto basado en calendario. Cada uno se puede convertir fácilmente en el otro, por lo que no es necesario restringir su modelo de acuerdo con lo que necesita la base de datos.

Así que debe preguntarse: ¿qué datos estoy realmente modelando? ¿Es un valor de año/mes/día/hora/minuto/segundo/etc. o solo es un momento arbitrario sin ningún significado particular?

+3

También tenga en cuenta que DateTime e Instant comparten la misma clase base (AbstractInstant) –

+0

Estoy de acuerdo con esta respuesta. Simplemente añadiré que, en caso de duda, use 'DateTime'. Centrándose en milisegundos generalmente conduce a la frustración y los errores ya que la fecha y hora es un problema difícil. –

+0

DateTime también tiene precisión de milisegundos – nob

Cuestiones relacionadas