2009-02-06 15 views
154

ISO 8601 y RFC 3339 parecen ser dos formatos comunes en la web. ¿Debo usar uno sobre el otro? ¿Es solo una extensión? ¿Realmente necesito cuidar tanto?¿Cuál es la diferencia entre los formatos de fecha ISO 8601 y RFC 3339?

+16

He cambiado el enlace al RFC de http://www.ietf.org/rfc/rfc3339.txt a la versión HTML en http://tools.ietf.org/html/rfc3339. Cuando se vincula a RFC, debe * siempre * vincularse a las versiones HTML en http://tools.ietf.org/html. No solo son más fáciles de navegar gracias a los enlaces de sección, sino que, lo que es más importante, enumeran en la parte superior los RFC que han actualizado u obsoleto el RFC que estás leyendo. La gente inadvertidamente cita RFC obsoletos todo el tiempo en Stack Overflow, y voy a seguir repitiendo este consejo hasta que desaparezca ese problema. (Para evitar dudas, * este * RFC no está obsoleto.) –

Respuesta

127

una justo una extensión?

Más o menos, sí - RFC 3339 aparece como un perfil de la norma ISO 8601. Lo más notable es el RFC 3339 requiere una representación completa de fecha y hora (sólo fracciones de segundo son opcionales). El RFC también tiene algunas diferencias pequeñas y sutiles. Por ejemplo, las representaciones truncadas de años con solo dos dígitos no están permitidas: el RFC 3339 requiere años de 4 dígitos, y el RFC solo permite usar un carácter de punto como punto decimal para los segundos fraccionarios. El RFC también permite que la "T" sea reemplazada por un espacio (u otro carácter), mientras que el estándar solo permite que se omita (y solo cuando hay un acuerdo entre todas las partes que usan la representación).

no me preocuparía demasiado por las diferencias entre los dos, pero en la remota posibilidad de que su caso de uso se rueda para ellos, que sería vale la pena tomar un vistazo a:

+7

Por otro lado, ISO permite omitir 'T' pero el RFC 3339 lo ordena http://tools.ietf.org/html/rfc3339#page -12 –

+0

ISO 8601 también incluye algunas extensiones no tan simples como intervalos y puntos de tiempo que se repiten periódicamente, mientras que RFC 3339 solo trata con marcas de tiempo. Lo siguiente (tomado de la especificación WMS) es legal ISO pero no RFC: 'Datos diarios tomados al mediodía desde el 15 de abril de 1995 (intervalo periódico): 1995-04-22T12: 00Z/2000-06-21T12: 00Z/P1D' – geira

+11

Lo siento Java Guy, pero eso no es del todo correcto. El apéndice al que se refiere es solo informativo y la restricción es por el simple hecho de mantener la gramática más simple. La nota al final de la sección 5.6 establece claramente que se puede usar un espacio por razones de legibilidad, refiriéndose a la mención anterior de legibilidad que es el tema de la sección 5.2. para citar: "Las aplicaciones que usan esta sintaxis pueden elegir, por razones de legibilidad, especificar una fecha completa y de tiempo completo separadas por (por ejemplo) un carácter de espacio." –

2

No debería tener que preocuparse demasiado. RFC 3339, en sí mismo, es un conjunto de normas derivadas de ISO 8601. Sin embargo, hay unas pocas diferencias de minutos, y todas están delineadas en RFC 3339. Podría revisarlas todas aquí, pero probablemente lo harías mejor. sólo leer el documento por sí mismo en el caso de que usted está preocupado:

http://www.ietf.org/rfc/rfc3339.txt

13

RFC 3339 es en su mayoría un perfil de la norma ISO 8601, pero en realidad es incompatible con ella en tomar prestado el "-00: 00" especificación zona horaria de RFC 2822. Esto se describe en el artículo de Wikipedia.

Cuestiones relacionadas