date - online - iso 8601 español
En una fecha ISO 8601, ¿es obligatorio el carácter T? (2)
Me pregunto si la siguiente fecha cumple con ISO8601:
2012-03-02 14:57:05.456+0500
(seguro, 2012-03-02T14: 57: 05.456 + 0500 es compatible, pero no es demasiado legible para el ser humano) IOW, ¿es obligatoria la T entre la fecha y la hora?
Esa fecha no cumple con la norma ISO-8601, como lo indicó Keith Thompson, pero cumple con RFC 3339, un perfil de la norma ISO 8601. Vea la NOTA en la parte inferior del siguiente texto de RFC 3339 :
date-time = full-date "T" full-time
NOTE: Per [ABNF] and ISO8601, the "T" and "Z" characters in this
syntax may alternatively be lower case "t" or "z" respectively.
This date/time format may be used in some environments or contexts
that distinguish between the upper- and lower-case letters ''A''-''Z''
and ''a''-''z'' (e.g. XML). Specifications that use this format in
such environments MAY further limit the date/time syntax so that
the letters ''T'' and ''Z'' used in the date/time syntax must always
be upper case. Applications that generate this format SHOULD use
upper case letters.
NOTE: ISO 8601 defines date and time separated by "T".
Applications using this syntax may choose, for the sake of
readability, to specify a full-date and full-time separated by
(say) a space character.
Se requiere a menos que los "socios en el intercambio de información" acepten omitirlo.
Citando la norma ISO 8601 , sección 4.3.2:
El carácter [T] se utilizará como designador de tiempo para indicar el inicio de la representación del componente de la hora del día en estas expresiones. [...]
NOTA Por acuerdo mutuo de los socios en el intercambio de información, el carácter [T] puede omitirse en aplicaciones donde no exista el riesgo de confundir una representación de fecha y hora del día con otras definidas en esta Norma Internacional.
Omitirlo es bastante común, pero es recomendable dejarlo si la representación debe ser legible por una máquina y no tiene un acuerdo claro de que pueda omitirla.
ACTUALIZACIÓN : El comentario de Mark Amery hace un buen punto, que el permiso para omitir la [T] no implica necesariamente permiso para reemplazarlo con un espacio. Así que esto:
2012-03-02T14:57:05.456+0500
es claramente compatible, y esto:
2012-03-0214:57:05.456+0500
está permitido si los socios acuerdan omitir la [T], pero esto:
2012-03-02 14:57:05.456+0500
aparentemente no lo es (aunque es mucho más legible que la versión con la [T] simplemente omitida).
Personalmente, si se requiriera la conformidad con ISO 8601, incluiría la [T], y si no lo fuera, usaría un espacio (o un guión si formaría parte de un nombre de archivo). Mi conjetura, y no es nada más que eso, era que la intención era permitir que la ''T'' fuera reemplazada por un espacio, pero el estándar no dice eso.