ISO 8601
ISO 8601 es una norma internacional que cubre el intercambio y la comunicación mundial de datos relacionados con la fecha y la hora. Lo mantiene la Organización Internacional de Normalización (ISO) con sede en Ginebra y se publicó por primera vez en 1988, con actualizaciones en 1991, 2000, 2004 y 2019. El estándar proporciona un método inequívoco y bien definido para representar las fechas y horas del calendario. en las comunicaciones mundiales, especialmente para evitar malas interpretaciones de fechas y horas numéricas cuando dichos datos se transfieren entre países con diferentes convenciones para escribir fechas y horas numéricas.
ISO 8601 se aplica a estas representaciones y formatos: fechas, en el calendario gregoriano (incluido el calendario gregoriano proléptico); horas, basadas en el sistema de cronometraje de 24 horas, con desplazamiento UTC opcional; intervalos de tiempo; y combinaciones de los mismos. El estándar no asigna un significado específico a ningún elemento de las fechas/horas representadas: el significado de cualquier elemento depende del contexto de su uso. Las fechas y horas representadas no pueden usar palabras que no tengan un significado numérico específico dentro del estándar (excluyendo así nombres de años en el calendario chino), o que no usen caracteres de computadora (excluyendo imágenes o sonidos).
En las representaciones que se adhieren al estándar de intercambio ISO 8601, las fechas y las horas se organizan de manera que el término temporal mayor (generalmente un año) se coloca a la izquierda y cada término menor se coloca sucesivamente a la derecha del término anterior. Las representaciones deben escribirse en una combinación de números arábigos y los caracteres informáticos específicos (como "-", ":", "T", "W", "Z") a los que se asignan significados específicos dentro del estándar; es decir, descriptores comunes de fechas (o partes de fechas) como "enero", "jueves" o "día de año nuevo" no están permitidos en representaciones de intercambio dentro del estándar.
Historia
La primera edición de la norma ISO 8601 se publicó como ISO 8601:1988 en 1988. Unificó y reemplazó varias normas ISO anteriores en varios aspectos de la notación de fecha y hora: ISO 2014, ISO 2015, ISO 2711, ISO 3307 y ISO 4031. Ha sido reemplazada por una segunda edición ISO 8601:2000 en 2000, por una tercera edición ISO 8601:2004 publicada el 1 de diciembre de 2004, y retirada y revisada por ISO 8601-1:2019 e ISO 8601-2:2019 el 25 de febrero de 2019. La norma ISO 8601 fue preparada y está bajo la responsabilidad directa del Comité Técnico de ISO TC 154.
ISO 2014, aunque reemplazada, es la norma que introdujo originalmente la notación de fecha completamente numérica en orden de mayor a menor importancia [YYYY]-[MM]-[DD]. El sistema de numeración de semanas ISO se introdujo en ISO 2015, y la identificación de días por fechas ordinales se definió originalmente en ISO 2711.
Emitida en febrero de 2019, la cuarta revisión de la norma ISO 8601-1:2019 presenta contenidos ligeramente actualizados de la norma ISO 8601:2004 anterior, mientras que la nueva ISO 8601-2:2019 define varias extensiones, como incertidumbres o partes de la norma extendida. Formato de fecha/hora (EDTF).
Nombre | Descripción |
---|---|
Norma ISO 8601:1988 | Elementos de datos y formatos de intercambio — Intercambio de información — Representación de fechas y horas |
ISO 8601:1988/COR 1:1991 | Elementos de datos y formatos de intercambio — Intercambio de información — Representación de fechas y horas — Corrección técnica 1 |
ISO 8601:2000 | Elementos de datos y formatos de intercambio — Intercambio de información — Representación de fechas y horas |
Norma ISO 8601:2004 | Elementos de datos y formatos de intercambio — Intercambio de información — Representación de fechas y horas |
Norma ISO 8601-1:2019 | Fecha y hora. Representaciones para el intercambio de información. Parte 1: Reglas básicas. |
Norma ISO 8601-2:2019 | Fecha y hora — Representaciones para el intercambio de información — Parte 2: Extensiones |
Principios generales
- Los valores de fecha y hora se ordenan de la unidad de tiempo más grande a la más pequeña: año, mes (o semana), día, hora, minuto, segundo y fracción de segundo. El orden lexicográfico de la representación corresponde así al orden cronológico, excepto para las representaciones de fechas que implican años negativos o desplazamiento temporal. Esto permite que las fechas se ordenen de forma natural, por ejemplo, por sistemas de archivos.
- Cada valor de fecha y hora tiene un número fijo de dígitos que deben completarse con ceros a la izquierda.
- Las representaciones se pueden hacer en uno de dos formatos: un formato básico con una cantidad mínima de separadores o un formato extendido con separadores agregados para mejorar la legibilidad humana. El estándar señala que "El formato básico debe evitarse en texto sin formato". El separador que se usa entre los valores de fecha (año, mes, semana y día) es el guión, mientras que los dos puntos se usan como separador entre los valores de tiempo (horas, minutos y segundos). Por ejemplo, el sexto día del primer mes del año 2009 se puede escribir como "2009-01-06" en el formato extendido o simplemente como "20090106" en el formato básico sin ambigüedad.
- Para reducir la precisión, se puede eliminar cualquier número de valores de cualquiera de las representaciones de fecha y hora, pero en el orden del menor al más significativo. Por ejemplo, "2004-05" es una fecha ISO 8601 válida, que indica mayo (el quinto mes) de 2004. Este formato nunca representará el quinto día de un mes no especificado en 2004, ni representará un lapso de tiempo que se extienda desde 2004 a 2005.
- Si es necesario para una aplicación en particular, el estándar admite la adición de una fracción decimal al valor de tiempo más pequeño en la representación.
Fechas
Semana | Lun | Mar | Casarse | Jue | Vie | Se sentó | Sol |
---|---|---|---|---|---|---|---|
W39 | 26 | 27 | 28 | 29 | 30 | 01 | 02 |
W40 | 03 | 04 | 05 | 06 | 07 | 08 | 09 |
W41 | 10 | 11 | 12 | 13 | 14 | 15 | dieciséis |
W42 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
W43 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
W44 | 31 | 01 | 02 | 03 | 04 | 05 | 06 |
El estándar utiliza el calendario gregoriano, que "sirve como estándar internacional para uso civil".
ISO 8601:2004 fija una fecha de calendario de referencia al calendario gregoriano del 20 de mayo de 1875 como la fecha en que se firmó la Convención du Mètre (Convención del Metro) en París (la fecha de referencia explícita se eliminó en ISO 8601-1:2019). Sin embargo, las fechas del calendario ISO anteriores a la convención siguen siendo compatibles con el calendario gregoriano desde la introducción oficial del calendario gregoriano el 15 de octubre de 1582.
Se podrán utilizar fechas anteriores, en el calendario gregoriano proléptico, por mutuo acuerdo de los socios que intercambien información. El estándar establece que cada fecha debe ser consecutiva, por lo que el uso del calendario juliano sería contrario al estándar (porque en la fecha de cambio, las fechas no serían consecutivas).
Años
AAAA |
± Y AAAA |
ISO 8601 prescribe, como mínimo, un año de cuatro dígitos [YYYY] para evitar el problema del año 2000. Por lo tanto, representa los años del 0000 al 9999, siendo el año 0000 igual al 1 aC y todos los demás dC. Sin embargo, la norma no permite automáticamente los años anteriores a 1583. En cambio, "los valores en el rango [0000] a [1582] solo se utilizarán por acuerdo mutuo de los socios en el intercambio de información".
Para representar años anteriores al 0000 o posteriores al 9999, la norma también permite la ampliación de la representación del año pero sólo previo acuerdo entre el emisor y el receptor. Una representación de año ampliada [± Y YYYY] debe tener un número acordado de dígitos de año adicionales más allá del mínimo de cuatro dígitos, y debe tener un prefijo con un signo + o - en lugar del AD/BC más común (o CE/ BCE) notación; por convención, 1 BC se etiqueta como +0000, 2 BC se etiqueta como −0001, y así sucesivamente.
Fechas del calendario
AAAA-MM-DD | o | AAAAMMDD |
AAAA-MM | (pero no AAAAMM) | |
Solo permitido en la versión 2000 (ahora reemplazada): | ||
--MM-DD | o | --MMDD |
Las representaciones de la fecha del calendario tienen el formato que se muestra en el cuadro adyacente. [YYYY] indica un año de cuatro dígitos, 0000 a 9999. [MM] indica un mes del año de dos dígitos, 01 a 12. [DD] indica un día de dos dígitos de ese mes, 01 a 31. Por ejemplo, "5 de abril de 1981" puede representarse como "1981-04-05" en el formato extendido o "19810405" en el formato básico.
El estándar también permite que las fechas del calendario se escriban con precisión reducida. Por ejemplo, uno puede escribir "1981-04" para significar "abril de 1981". Uno puede simplemente escribir "1981" para referirse a ese año, "198" para referirse a la década de 1980 a 1989 inclusive, o "19" para referirse al siglo de 1900 a 1999 inclusive. Aunque el estándar permite los formatos "YYYY-MM-DD" y YYYYMMDD para representaciones completas de fechas de calendario, si se omite el día [DD], solo se permite el formato AAAA-MM. Al no permitir las fechas de la forma AAAAMM, el estándar evita la confusión con la representación truncada YYMMDD (aún se usa con frecuencia). La versión 2000 también permitía escribir el truncamiento "--04-05"pero la versión 2004 no permite omitir el año cuando está presente un mes.
Fechas de la semana
AAAA-Www | o | AAAAWww |
AAAA-Www-D | o | AAAAWwwD |
Las representaciones de fecha de semana están en los formatos que se muestran en el cuadro adyacente. [YYYY] indica el año de numeración de semana ISO que es ligeramente diferente del año del calendario gregoriano tradicional (ver más abajo). [Www] es el número de semana precedido por la letra W, de W01 a W53. [D] es el número del día de la semana, del 1 al 7, comenzando con el lunes y terminando con el domingo.
Hay varias descripciones mutuamente equivalentes y compatibles de la semana 01:
- la semana con el primer día hábil del año que comienza (considerando que los sábados, domingos y el 1 de enero son días inhábiles),
- la semana con el primer jueves del año de inicio (la definición formal de ISO),
- la semana con el 4 de enero en ella,
- la primera semana con la mayoría (cuatro o más) de sus días en el año de inicio, y
- la semana que comienza con el lunes en el período 29 diciembre - 4 enero.
En consecuencia, si el 1 de enero es lunes, martes, miércoles o jueves, está en la semana 01. Si el 1 de enero es viernes, sábado o domingo, está en la semana 52 o 53 del año anterior (hay ninguna semana 00). El 28 de diciembre siempre es la última semana de su año.
El número de semana se puede describir contando los jueves: la semana 12 contiene el jueves 12 del año.
El año de numeración de semanas ISO comienza el primer día (lunes) de la semana 01 y finaliza el domingo anterior al nuevo año ISO (por lo tanto, sin superposición ni brecha). Consta de 52 o 53 semanas completas. La primera semana ISO de un año puede tener hasta tres días que estén realmente en el año del calendario gregoriano que está finalizando; si son tres, son lunes, martes y miércoles. De manera similar, la última semana ISO de un año puede tener hasta tres días que estén realmente en el año del calendario gregoriano que está comenzando; si son tres, son viernes, sábado y domingo. El jueves de cada semana ISO siempre está en el año del calendario gregoriano indicado por el año de numeración de la semana ISO.
Ejemplos:
- El lunes 29 de diciembre de 2008 está escrito "2009-W01-1"
- El domingo 3 de enero de 2010 está escrito "2009-W53-7"
Fechas ordinales
AAAA-DDD | o | AAAADDD |
Una fecha ordinal es una forma simple para ocasiones en las que la naturaleza arbitraria de las definiciones de semana y mes son más un impedimento que una ayuda, por ejemplo, cuando se comparan fechas de diferentes calendarios. Como se representa arriba, [YYYY] indica un año y [DDD] es el "día del año", desde 001 hasta 365 (366 en años bisiestos). Por ejemplo, "1981-04-05" también es "1981-095".
Este formato se usa con sistemas de hardware simples que necesitan un sistema de fecha, pero donde incluir un software de cálculo de calendario completo puede ser una molestia importante. Este sistema a veces se denomina "Fecha juliana", pero esto puede causar confusión con el día juliano astronómico, un recuento secuencial del número de días desde el día 0 a partir del 1 de enero de 4713 a. C. Mediodía de Greenwich, calendario proléptico juliano (o mediodía en ISO fecha −4713-11-24 que usa el calendario proléptico gregoriano con un año 0000).
Veces
Thh:mm:ss.sss | o | thhmmss.sss |
Thh: mm: ss | o | mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm |
Thh:mm | o | Thhmm |
thh |
ISO 8601 utiliza el sistema de reloj de 24 horas. A partir de ISO 8601-1:2019, el formato básico es T[hh][mm][ss] y el formato extendido es T[hh]:[mm]:[ss]. Las versiones anteriores omitieron la T (que representa el tiempo) en ambos formatos.
- [hh] se refiere a una hora con ceros entre 00 y 23.
- [mm] se refiere a un minuto con ceros entre 00 y 59.
- [ss] se refiere a un segundo con ceros entre 00 y 60 (donde 60 solo se usa para indicar un segundo intercalar agregado).
Por lo tanto, una hora puede aparecer como "T134730" en el formato básico o "T13:47:30" en el formato extendido. ISO 8601-1:2019 permite omitir la T en el formato extendido, como en "13:47:30", pero solo permite omitir la T en el formato básico cuando no hay riesgo de ambigüedad con las expresiones de fecha.
Los segundos, o los minutos y los segundos, pueden omitirse de los formatos de tiempo básico o extendido para mayor brevedad pero menor precisión; los formatos de tiempo de precisión reducida resultantes son:
- T[hh][mm] en formato básico o [hh]:[mm] en formato extendido, cuando se omiten los segundos.
- T[hh], cuando se omiten tanto los segundos como los minutos.
A partir de ISO 8601-1:2019, solo se puede hacer referencia a la medianoche como "00:00", que corresponde al comienzo de un día calendario. Las versiones anteriores del estándar permitían "24:00" correspondientes al final de un día, pero la revisión de 2019 lo prohíbe explícitamente.
Se puede agregar una fracción decimal al elemento de tiempo de menor orden presente, en cualquiera de estas representaciones. Se utiliza una marca decimal, ya sea una coma o un punto, como separador entre el elemento de tiempo y su fracción. (Siguiendo a ISO 80000-1 según ISO 8601:1-2019, no estipula una preferencia excepto dentro de las Normas Internacionales, pero con preferencia por una coma según ISO 8601:2004). Por ejemplo, para denotar "14 horas, 30 minutos y medio", no incluya una cifra de segundos; represéntelo como "14:30,5", "T1430,5", "14:30.5" o "T1430.5".
No hay límite en el número de lugares decimales para la fracción decimal. Sin embargo, el número de decimales debe ser acordado por las partes comunicantes. Por ejemplo, en Microsoft SQL Server, la precisión de una fracción decimal es 3 para DATETIME, es decir, "yyyy-mm-ddThh:mm:ss[.mmm]".
Designadores de zona horaria
<tiempo>Z |
<tiempo>±hh:mm |
<tiempo>±hhmm |
<tiempo>±hh |
Las zonas horarias en ISO 8601 se representan como la hora local (sin especificar la ubicación), como UTC o como un desplazamiento de UTC.
Hora local (sin calificar)
Si no se proporciona información sobre la relación UTC con una representación horaria, se supone que la hora es la hora local. Si bien puede ser seguro asumir la hora local cuando se comunica en la misma zona horaria, es ambiguo cuando se usa para comunicarse entre diferentes zonas horarias. Incluso dentro de una sola zona horaria geográfica, algunas horas locales serán ambiguas si la región observa el horario de verano. Por lo general, es preferible indicar una zona horaria (designador de zona) utilizando la notación estándar.
Tiempo Universal Coordinado (UTC)
Si la hora está en UTC, agregue una Z directamente después de la hora sin espacios. Z es el designador de zona para el desplazamiento UTC cero. Por lo tanto, "09:30 UTC" se representa como "09:30Z" o "T0930Z". "14:45:15 UTC" sería "14:45:15Z" o "T144515Z".
El sufijo Z en la representación horaria ISO 8601 a veces se denomina "hora zulú" o "meridiano zulú" porque se usa la misma letra para designar la zona horaria zulú. Sin embargo, el estándar ACP 121 que define la lista de zonas horarias militares no menciona el UTC y deriva el "tiempo zulú" del meridiano de Greenwich, que anteriormente se usaba como el estándar de tiempo civil internacional. GMT ya no está definido con precisión por la comunidad científica y puede referirse a UTC o UT1 según el contexto.
Desplazamientos de tiempo de UTC
El desplazamiento UTC se agrega a la hora de la misma manera que 'Z' estaba arriba, en la forma ±[hh]:[mm], ±[hh][mm] o ±[hh].
Las compensaciones UTC negativas describen una zona horaria al oeste de UTC±00:00, donde la hora civil está atrasada (o antes) que UTC, por lo que el designador de zona se verá como "−03:00","−0300" o "−03 ".
Las compensaciones UTC positivas describen una zona horaria en o al este de UTC±00:00, donde la hora civil es igual o anterior (o posterior) a UTC, por lo que el indicador de zona se verá como "+02:00","+0200 ", o "+02".
Ejemplos
- "−05:00" para Nueva York en hora estándar (UTC-05:00)
- "−04:00" para Nueva York en horario de verano (UTC-04:00)
- "+00:00" (pero no "−00:00") para Londres en hora estándar (UTC±00:00)
- "+02:00" para El Cairo (UTC+02:00)
- "+05:30" para Bombay (UTC+05:30)
- "+14:00" para Kiribati (UTC+14:00)
Consulte la Lista de compensaciones de hora UTC para conocer otras compensaciones de UTC.
Para representar un desplazamiento negativo, ISO 8601 especifica el uso de un signo menos, (-). Si el conjunto de caracteres de intercambio es limitado y no tiene un carácter de signo menos, se debe usar el guión menos, (-). ASCII no tiene un signo menos, por lo que se usaría su carácter guión-menos (el código es 45 decimal o hexadecimal 2D). Si el conjunto de caracteres tiene un signo menos, entonces se debe usar ese carácter. Unicode tiene un signo menos y su código de carácter es U+2212 (2212 hexadecimal); la invocación de la entidad de caracteres HTML es −
.
Las siguientes horas se refieren todas al mismo momento: "18:30Z", "22:30+04", "1130−0700" y "15:00−03:30". Las letras de la zona horaria náutica no se utilizan con la excepción de Z. Para calcular la hora UTC, hay que restar el desplazamiento de la hora local, por ejemplo, para "15:00−03:30" haz 15:00 − (−03:30) para llegar a las 18:30 UTC.
Un desplazamiento de cero, además de tener la representación especial "Z", también puede indicarse numéricamente como "+00:00", "+0000" o "+00". Sin embargo, no está permitido indicarlo numéricamente con un signo negativo, como "−00:00", "−0000" o "−00". La sección que dicta el uso del signo establece que se debe usar un signo más para un valor positivo o cero, y un signo menos para un valor negativo. Contrariamente a esta regla, RFC 3339, que por lo demás es un perfil de ISO 8601, permite el uso de "-00", con la misma denotación que "+00" pero con una connotación diferente.
Representaciones combinadas de fecha y hora
<fecha>T<hora> |
Un único punto en el tiempo se puede representar concatenando una expresión de fecha completa, la letra "T" como delimitador y una expresión de tiempo válida. Por ejemplo, "2007-04-05T14:30". En ISO 8601:2004 se permitía omitir el carácter "T" de mutuo acuerdo como en "200704051430", pero esta disposición se eliminó en ISO 8601-1:2019. La separación de partes de fecha y hora con otros caracteres como el espacio no está permitida en ISO 8601, pero sí en su perfil RFC 3339.
Si se requiere un designador de zona horaria, sigue a la fecha y la hora combinadas. Por ejemplo, "2007-04-05T14:30Z" o "2007-04-05T12:30−02:00".
Se pueden usar formatos básicos o extendidos, pero tanto la fecha como la hora deben usar el mismo formato. La expresión de fecha puede ser calendario, semana u ordinal y debe utilizar una representación completa. El tiempo se puede representar utilizando un formato de precisión reducida especificado.
Duraciones
PnYnMnDTnHnMnS |
PnW |
P<fecha>T<hora> |
Las duraciones definen la cantidad de tiempo que interviene en un intervalo de tiempo y se representan con el formato P[n]Y[n]M[n]DT[n]H[n]M[n]S o P[n]W como se muestra a un lado En estas representaciones, la [n] se reemplaza por el valor de cada uno de los elementos de fecha y hora que siguen a la [n]. No se requieren ceros iniciales, pero las partes que se comunican deben acordar el número máximo de dígitos para cada elemento. Las letras mayúsculas P, Y, M, W, D, T, H, M y S designan cada uno de los elementos de fecha y hora y no se reemplazan.
- P es el designador de duración (para el período) colocado al comienzo de la representación de la duración.
- Y es el designador de año que sigue al valor del número de años calendario.
- M es el indicador de mes que sigue al valor del número de meses naturales.
- W es el indicador de semana que sigue al valor del número de semanas.
- D es el indicador de día que sigue al valor del número de días naturales.
- T es el designador de tiempo que precede a los componentes de tiempo de la representación.
- H es el indicador de hora que sigue al valor del número de horas.
- M es el indicador de minutos que sigue al valor del número de minutos.
- S es el segundo indicador que sigue al valor del número de segundos.
Por ejemplo, "P3Y6M4DT12H30M5S" representa una duración de "tres años, seis meses, cuatro días, doce horas, treinta minutos y cinco segundos".
Los elementos de fecha y hora, incluido su designador, pueden omitirse si su valor es cero, y los elementos de orden inferior también pueden omitirse para reducir la precisión. Por ejemplo, "P23DT23H" y "P4Y" son representaciones de duración aceptables. Sin embargo, al menos un elemento debe estar presente, por lo que "P" no es una representación válida para una duración de 0 segundos. "PT0S" o "P0D", sin embargo, ambos son válidos y representan la misma duración.
Para resolver la ambigüedad, "P1M" es una duración de un mes y "PT1M" es una duración de un minuto (tenga en cuenta el designador de tiempo, T, que precede al valor de tiempo). El valor más pequeño utilizado también puede tener una fracción decimal, como en "P0.5Y" para indicar medio año. Esta fracción decimal se puede especificar con una coma o un punto, como en "P0,5Y" o "P0.5Y". El estándar no prohíbe que los valores de fecha y hora en una representación de duración excedan sus "puntos de transferencia", excepto como se indica a continuación. Por lo tanto, podría usarse "PT36H" así como "P1DT12H" para representar la misma duración. Pero tenga en cuenta que "PT36H" no es lo mismo que "P1DT12H" al cambiar de o a horario de verano.
Alternativamente, se puede utilizar un formato de duración basado en representaciones combinadas de fecha y hora por acuerdo entre las partes comunicantes, ya sea en el formato básico PYYYYMMDDThhmmss o en el formato extendido P[YYYY]-[MM]-[DD]T[hh]: [mm]:[ss]. Por ejemplo, la primera duración que se muestra arriba sería "P0003-06-04T12:30:05". Sin embargo, los valores individuales de fecha y hora no pueden exceder sus módulos (p. ej., no se permite un valor de 13 para el mes o 25 para la hora).
El estándar describe una duración como parte de los intervalos de tiempo, que se analizan en la siguiente sección. El formato de duración por sí solo es ambiguo con respecto al número total de días en un año calendario y un mes calendario. El número de segundos en un día calendario también es ambiguo debido a los segundos intercalares. Por ejemplo, "P1M" por sí solo podría ser 28, 29, 30 o 31 días. No hay ambigüedad cuando se usa en un intervalo de tiempo. Usando el ejemplo "P2M" duración de dos meses calendario:
- el intervalo 2003-02-15T00:00:00Z/P2M finaliza dos meses calendario después en 2003-04-15T00:00:00Z, que es 59 días después
- el intervalo 2003-07-15T00:00:00Z/P2M finaliza dos meses calendario después en 2003-09-15T00:00:00Z, que es 62 días después
El formato de duración (o un subconjunto del mismo) se usa ampliamente independientemente de los intervalos de tiempo, como con la clase Duration de Java 8 que admite un subconjunto del formato de duración.
Intervalos de tiempo
<inicio>/<fin> |
<inicio>/<duración> |
<duración>/<fin> |
<duración> |
Un intervalo de tiempo es el tiempo intermedio entre dos puntos de tiempo. La cantidad de tiempo intermedio se expresa mediante una duración (como se describe en la sección anterior). Los dos puntos de tiempo (inicio y fin) se expresan mediante una representación combinada de fecha y hora o simplemente una representación de fecha.
Hay cuatro formas de expresar un intervalo de tiempo:
- Inicio y fin, como "2007-03-01T13:00:00Z/2008-05-11T15:30:00Z"
- Inicio y duración, como "2007-03-01T13:00:00Z/P1Y2M10DT2H30M"
- Duración y fin, como "P1Y2M10DT2H30M/2008-05-11T15:30:00Z"
- Solo duración, como "P1Y2M10DT2H30M", con información de contexto adicional
De estos, los tres primeros requieren dos valores separados por un designador de intervalo que suele ser un sólido (más comúnmente conocido como una barra inclinada "/"). La sección 3.2.6 de ISO 8601-1: 2019 señala que "Un sólido puede reemplazarse por un guión doble ["--"] por acuerdo mutuo de los socios comunicantes", y las versiones anteriores usaban notaciones como "2000--2002". El uso de un guión doble en lugar de un sólido permite la inclusión en los nombres de archivo de la computadora; en los sistemas operativos comunes, un solidus es un carácter reservado y no está permitido en un nombre de archivo.
Para las expresiones <start>/<end>, si falta algún elemento del valor final, se supone que es el mismo que para el valor inicial, incluida la zona horaria. Esta característica del estándar permite representaciones concisas de intervalos de tiempo. Por ejemplo, la fecha de una reunión de dos horas, incluidas las horas de inicio y finalización, podría mostrarse simplemente como "2007-12-14T13:30/15:30", donde "/15:30" implica "/2007-12- 14T15:30" (la misma fecha que el inicio), o las fechas de inicio y finalización de un período de facturación mensual como "2008-02-15/03-14", donde "/03-14" implica "/2008-03 -14" (el mismo año que el inicio).
Si se desea una mayor precisión para representar el intervalo de tiempo, se pueden agregar más elementos de tiempo a la representación. Un intervalo denominado "2007-11-13/15" puede comenzar en cualquier momento el 2007-11-13 y finalizar en cualquier momento el 2007-11-15, mientras que "2007-11-13T09:00/15T17:00" incluye los tiempos de inicio y finalización. Para incluir explícitamente todas las fechas de inicio y finalización, el intervalo se representaría como "2007-11-13T00:00/16T00:00".
Intervalos de repetición
Rn/<intervalo> |
R/<intervalo> |
Los intervalos de repetición se especifican en la cláusula "4.5 Intervalo de tiempo recurrente". Se forman agregando "R[n]/" al comienzo de una expresión de intervalo, donde R se usa como la letra misma y [n] se reemplaza por el número de repeticiones. Omitir el valor de [n] o especificar un valor de -1 significa un número ilimitado de repeticiones. Un valor de 0 para [n] significa que el intervalo no se repite.
Si el intervalo especifica el inicio (formularios 1 y 2 anteriores), entonces este es el inicio del intervalo de repetición. Si el intervalo especifica el final pero no el inicio (formulario 3 anterior), entonces este es el final del intervalo de repetición. Por ejemplo, para repetir el intervalo de "P1Y2M10DT2H30M" cinco veces a partir de "2008-03-01T13:00:00Z", utilice "R5/2008-03-01T13:00:00Z/P1Y2M10DT2H30M".
Representaciones truncadas (en desuso)
ISO 8601:2000 permitía el truncamiento (por acuerdo), donde se omiten los componentes principales de una fecha u hora. En particular, esto permitió el uso de años de dos dígitos y los formatos ambiguos YY-MM-DD y YYMMDD. Esta disposición se eliminó en la norma ISO 8601:2004.
Escribe | Formato básico | Ejemplo básico | formato extendido | Ejemplo extendido |
---|---|---|---|---|
Una fecha específica en el siglo implícito | AAMMDD | 851026 | AA-MM-DD | 85-10-26 |
Un año y mes específicos en el siglo implícito | -AAMM | -8510 | -AA-MM | -85-10 |
Un año específico en el siglo implícito | -AA | -85 | — | |
Un día específico de un mes en el año implícito | --MMDD | --1026 | --MM-DD | --10-26 |
Un mes específico en el año implícito | --MM | --10 | — | |
Un día específico en el mes implícito | ---DD | ---26 |
Solo el primer tipo (fecha específica en el siglo implícito) omite el interlineado -
de siglo. Todos los demás formatos tienen un encabezado -
por siglo, año y mes omitido.
Extensiones estandarizadas
ISO 8601-2:2019 define un conjunto de extensiones estandarizadas para los formatos de fecha y hora de ISO 8601.Formato extendido de fecha/hora (EDTF)El EDTF se da como ejemplo de un perfil de ISO 8601. Algunas de sus características son:
- Calificadores inciertos y aproximados, '?' y '~', así como su uso combinado, '%'; se pueden aplicar a toda la fecha oa componentes individuales.
- Intervalos de tiempo con un final abierto (ilimitado) o un final desconocido.
- Notación de cifras exponenciales y significativas en años.
- Valores especiales de "mes" que indican agrupaciones de subaños, como temporadas y trimestres.
- Sintaxis para serializar una lista de fechas.
Las características de EDTF se describen en la sección "Extensiones de fecha y hora" de ISO 8601-2:2019.Reglas de repetición para intervalos de tiempo recurrentesISO 8601-2:2019 también define un formato para restringir la repetición de intervalos según la sintaxis de iCalendar.
Uso
En Internet, el World Wide Web Consortium (W3C) utiliza el estándar IETF basado en ISO 8601 para definir un perfil del estándar que restringe los formatos de fecha y hora admitidos para reducir la posibilidad de error y la complejidad del software. La especificación muy simple se basa en un borrador del RFC 3339 que se menciona a continuación.
Varias especificaciones hacen referencia a ISO 8601, pero no siempre se utiliza la gama completa de opciones de ISO 8601. Por ejemplo, los diversos estándares de guía de programas electrónicos para TV, radio digital, etc. utilizan varias formas para describir puntos en el tiempo y duraciones. La especificación de metadatos de audio ID3 también utiliza un subconjunto de ISO 8601. GeneralizedTime del estándar de codificación X.690 utiliza otro subconjunto de ISO 8601.
Comercio
La fecha de la semana ISO 8601, a partir de 2006, apareció en su forma básica en los empaques comerciales de las principales marcas en los Estados Unidos. Su apariencia dependía de la planta particular de envasado, enlatado o embotellado más que de cualquier marca en particular. El formato es particularmente útil para el aseguramiento de la calidad, de modo que los errores de producción se puedan rastrear fácilmente.
RFC
IETF RFC 3339 define un perfil de ISO 8601 para uso en protocolos y estándares de Internet. Excluye explícitamente duraciones y fechas anteriores a la era común. Los formatos más complejos, como números de semana y días ordinales, no están permitidos.
RFC 3339 se desvía de ISO 8601 al permitir que se especifique un desplazamiento de zona horaria cero como "-00:00", lo que prohíbe ISO 8601. RFC 3339 pretende que "-00:00" tenga la connotación de que no indica una zona horaria preferida, mientras que el "+00:00" conforme o cualquier compensación distinta de cero connota que se prefiere la compensación que se está utilizando. Esta convención con respecto a "-00:00" se deriva de RFC anteriores, como RFC 2822, que lo usa para las marcas de tiempo en los encabezados de correo electrónico. RFC 2822 no afirmó que ninguna parte de su formato de marca de tiempo se ajustara a ISO 8601, por lo que era libre de usar esta convención sin conflicto.
Adopción como normas nacionales
Australia | AS/NZS ISO 8601.1:2021, AS/NZS ISO 8601.2:2021 (reemplazado AS ISO 8601-2007) |
---|---|
Austria | ÖNORM ISO 8601 (reemplazó a ÖNORM EN 28601) |
Bélgica | NBN EN 28601 (1993) |
Brasil | NBR 5892:2019 |
Canadá | CAN/CSA-Z234.4-89 (R2007) |
Colombia | NTC 1034:2014 Fuente ICONTEC (Esta norma es idéntica a la ISO 8601:2004) |
Porcelana | GB/T 7408-2005 |
República Checa | ČSN ISO 8601 (reemplazado ČSN EN 28601) |
Dinamarca | DS/ISO 8601:2005 (reemplazó a DS/EN 28601) |
Estonia | SVE 8:2008; EVS-ISO 8601:2011 |
Norma Europea | EN ISO 8601, EN 28601:1992 (cancelada el 7 de octubre de 2011) |
Finlandia | SFS-EN 28601 |
Francia | NF Z69-200; NF EN 28601:1993-06-01 (anulado) |
Alemania | DIN ISO 8601:2006-09 (reemplazó a DIN EN 28601:1993-02); relacionado: DIN 5008:2011-04 (reemplazado DIN 5008:2005-05, DIN 5008:2001-11, DIN 5008:1996-05) |
Grecia | ELOT EN 28601 |
Hungría | MSZISO 8601:2003 |
Islandia | IST EN 28601:1992 (obsoleto) |
India | ES 7900:2001 |
Irlanda | ES/EN 28601:1993 |
Italia | UNI EN 28601 (1993) |
Japón | JIS X 0301:2002 |
Corea, república de | KS X ISO 8601 |
Lituania | LST ISO 8601:2006 (reemplazó a LST ISO 8601:1997) |
luxemburgo | ITM-EN 28601 |
México | NMX-CH-150-IMNC-1999 |
Países Bajos | NEN ISO 8601, NEN EN 28601 (1994), NEN 2772 |
Nueva Zelanda | AS/NZS ISO 8601.1:2021, AS/NZS ISO 8601.2:2021 |
Noruega | NS-ISO 8601 |
Polonia | PN-EN 28601:2002 (Obsoleta a partir de 2008. No se dio ninguna norma a cambio.) |
Portugal | NP EN 28601 |
Rusia | ГОСТ ИСО 8601-2001 (actual), ГОСТ 7.64-90 (obsoleto) |
Sudáfrica | SAN 8601:2009 |
España | UNE EN 28601:1995 |
Suecia | SS-ISO 8601:2011 (Aprobado el 01-11-2011, reemplaza a SS-ISO 8601) |
Suiza | SN ISO 8601:2005-08 (reemplazó a SN-EN 28601:1994) |
Taiwán | SNC 7648 |
Tailandia | TIS 1111:2535 (1992) |
Pavo | TS ISO 8601-1 y TS ISO 8601-2 (aceptado desde el 15 de febrero de 2021) |
Ucrania | ДСТУ ISO 8601:2010 |
Reino Unido | BS ISO 8601:2004, BS EN 28601 (1989-06-30) |
Estados Unidos | ANSI INCITS 30-1997 (R2008) y NIST FIPS PUB 4-2 |
Vietnam | TCVN 6398-1:1998 |
Contenido relacionado
Historia del software
Carácter (informática)
Proceso (informática)