example datetime format web-standards

datetime - example - ¿Cuál es la diferencia entre los formatos de fecha ISO 8601 y RFC 3339?



c# date format rfc3339 (4)

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 tengo que preocuparme tanto?


¿Es solo una extensión?

Más o menos, sí: RFC 3339 aparece como un perfil de ISO 8601. Más notablemente, RFC 3339 requiere una representación completa de la fecha y la hora (solo los segundos fraccionarios son opcionales). El RFC también tiene algunas pequeñas y sutiles diferencias. Por ejemplo, no se permiten representaciones truncadas de años con solo dos dígitos: el RFC 3339 requiere años de 4 dígitos, y el RFC solo permite que se utilice un carácter de punto como el 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 existe un acuerdo entre todas las partes que utilizan la representación).

No me preocuparía demasiado por las diferencias entre los dos, pero en caso de que su caso de uso llegue a ellos, valdría la pena echar un vistazo a:


''2018-03T13: 24: 59.321T'' <- Valid ISO 8601

''2018-03T13: 24: 59.321T'' <- ISO 3339 no válido

Es al menos una diferencia.


No deberías tener que preocuparte mucho. RFC 3339, según sí mismo, es un conjunto de estándares derivados de la norma ISO 8601. Sin embargo, hay algunas diferencias mínimas, y todas están resumidas en RFC 3339. Podría revisarlas todas aquí, pero probablemente lo haría mejor. Solo lee el documento por ti mismo en caso de que estés preocupado:

ietf.org/rfc/rfc3339.txt


RFC 3339 es principalmente un perfil de ISO 8601, pero en realidad es inconsistente con él al tomar prestada la especificación de zona horaria "-00: 00" de RFC 2822. Esto se describe en el artículo de Wikipedia.