2011-01-13 9 views
6

Al diseñar un servicio que devuelve JSON al navegador (o servidor JS), ¿cuál es el "mejor" formato para codificar fechas en la respuesta JSON resultante?¿Cuál es la mejor práctica para las fechas de codificación en JSON?

La propiedad de datos debe:

  • requerir poco o ningún análisis para convertir a un (objeto Date)
  • sea clasificable en la representación JSON sí

Devolver el número de milisegundos desde el 1 de enero de 1970 a las 00:00:00 UTC parece que sería la mejor opción, pero no es especialmente legible cuando se mira el JSON sin formato.

¿Qué prefiere en su experiencia y por qué?

+1

No creo que tenga sentido pensar en una sola "Mejor práctica" aquí. Existen muchos requisitos posibles para administrar los valores de fecha/hora, y las diferentes circunstancias requieren diferentes soluciones. – Pointy

+0

Pero esto es bastante específico, consumiendo JSON de JavaScript de manera eficiente. Cité "lo mejor" porque es ciertamente subjetivo y no hay una solución única para todos. Solo estoy tratando de obtener una perspectiva y una perspectiva externas basadas en las experiencias de los demás. – mbrevoort

Respuesta

12

Personalmente iría con ISO 8601 (por ejemplo, 2011-01-13T14: 09Z).

Es compatible con prácticamente todos los lenguajes de programación, es bastante fácil de leer y, si tiene que rodar su propio analizador/formateador, es bastante fácil de manejar allí también. También tiene la propiedad ordenable que deseaba.

+0

Diría que usar las cuerdas es bueno porque puedes ver la fecha, pero puede dañar el rendimiento, excepto cuando estás enviando muchas. Trabajé con software de hojas de horas que necesitaba cinco objetos de fecha por fila; El análisis de cadenas fue demasiado lento para las personas que buscaban hojas de horas mensuales con 50 entradas diarias (un total de aproximadamente 1500 filas o 7500 fechas). –

+1

Si notó que era un analizador lento de fechas y decidió medir la diferencia entre usar segundos desde época vs. ISO 8601 para hacer lo que sea que esté haciendo con JSON y descubrió que hacer lo primero realmente ahorraba un porcentaje significativo de tiempo vs el último, entonces sí, probablemente deberías hacer segundos desde época. Sin embargo, me cuesta creer que ese sea el caso, a menos que estés usando un analizador de fechas especialmente malo. –

Cuestiones relacionadas