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

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?

¿Es solo una extensión?

Prácticamente, sí, el RFC 3339 figura como un perfil de ISO 8601. Lo más notable es que 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 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 sobre las diferencias entre los dos, pero en caso de que su caso de uso se les escape, valdría la pena echarle un vistazo a:

  • RFC 3339
  • Entrada de Wikipedia en ISO 8601

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

No deberías tener que importarte tanto. 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. solo leyendo el documento usted mismo en caso de que esté preocupado:

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