Las in­di­ca­cio­nes te­m­po­ra­les son un elemento clave para coor­di­nar­se y llegar a acuerdos. En la era de la glo­ba­li­za­ción digital, sin embargo, no es fácil hacerlas co­m­pre­n­si­bles para todos. En el mundo existen regiones y culturas con di­fe­re­n­tes co­n­ve­n­cio­nes en lo que a datos te­m­po­ra­les se refiere, lo cual pone en juego la precisión y la fia­bi­li­dad de las fechas y las horas cuando la co­mu­ni­ca­ción es in­te­r­na­cio­nal. Pre­ci­sa­me­n­te para resolver este problema existe la norma ISO 8601, un estándar global que permite a personas en di­fe­re­n­tes países coor­di­nar­se sin ma­le­n­te­n­di­dos.

De­fi­ni­ción: ISO 8601

El estándar in­te­r­na­cio­nal ISO 8601 da re­co­me­n­da­cio­nes para formatos numéricos de fecha y otras ex­pre­sio­nes te­m­po­ra­les.

Puedes convertir fechas al formato ISO date que desees, bien mediante di­fe­re­n­tes he­rra­mie­n­tas, bien usando un script. En este artículo te contamos todo lo que necesitas saber sobre este estándar para datos te­m­po­ra­les.

Compra y registra tu dominio ideal
  • Ce­r­ti­fi­ca­do SSL Wildcard gratis
  • Registro privado
  • Función Domain Connect para una co­n­fi­gu­ra­ción DNS si­m­pli­fi­ca­da gratis

Pri­n­ci­pios básicos de la norma ISO 8601

La norma ISO 8601 establece un formato re­co­no­ci­do a nivel in­te­r­na­cio­nal para presentar datos: la forma horas-minutos-segundos o, para fechas, la forma año-mes-día. Esta es­tru­c­tu­ra permite colocar las cifras di­re­c­ta­me­n­te una tras otra, pero también se pueden usar guiones para se­pa­rar­las, si se quiere facilitar su lectura. Así, en el formato básico de ISO 8601, la fecha 7 de se­p­tie­m­bre de 2019 tendría la forma 20190907 o, en su versión con guiones, 2019-09-07. Las ex­pre­sio­nes de horas se dividen en horas, minutos y segundos, de manera que en ISO 8601 tienen la forma 12:07:22. Con estos formatos de fecha ISO (también llamados ISO date formats), las co­n­ve­n­cio­nes es­pe­cí­fi­cas de cada país pasan a ser pre­s­ci­n­di­bles, al menos en los medios ele­c­tró­ni­cos. Se unifican así las distintas ex­pre­sio­nes y se causa menos confusión.

Otra de­no­mi­na­ción para el estándar ISO 8601 es EN 28601 (en su forma para normas de la UE). Este formato no solo sirve para indicar puntos en el tiempo, sino también periodos: para ello, el momento o fecha de inicio se marca con la letra P para separarlo del siguiente dato temporal. Por lo tanto, un periodo que comience el 6 de se­p­tie­m­bre de 2019 a las 20 h y dure un mes, 5 días y 3 horas, por ejemplo, tendría la forma 2019-09-06T20P1M5D3H en el formato unificado ISO.

Todos los datos, como puedan ser horas, fechas o periodos, siguen un orden concreto en la norma ISO: de la unidad más grande a la más pequeña, es decir, en orden de­s­ce­n­de­n­te. Así, siguiendo la escala natural del valor de cada unidad, una unidad más grande siempre aparecerá antes que otra más pequeña. La ventaja de este sistema es que lleva al mismo resultado tanto si se cla­si­fi­can los datos según criterios le­xi­co­grá­fi­cos, como si se hace de forma cro­no­ló­gi­ca.

Elementos te­m­po­ra­les de ISO 8601 (ISO date) en forma de tabla:

Re­pre­se­n­ta­ción según ISO 8601 Valores posibles
Año (Y) yyyy, cuatro cifras o dos en modo abreviado
Mes (M) MM, de 01 a 12
Semana (W) ww, de 01 a 53
Día (D) d, día de la semana, de 1 a 7
Hora (H) HH, de 00 a 23, 24:00:00 como última hora
Minuto (m) mm, de 00 a 59
Segundo (s) ss, de 00 a 59
Fracción (f) Fra­c­cio­nes de segundo, con la precisión que se desee

En todos los formatos de la norma, los valores se cla­si­fi­can en unidades y su­bu­ni­da­des: año, mes, día, hora, etc. Cada una de las unidades contiene un número fijo de cifras. Las ciencias naturales, el de­sa­rro­llo de software y la co­rre­s­po­n­de­n­cia in­te­r­na­cio­nal son ámbitos en los que esta norma resulta es­pe­cia­l­me­n­te útil para reducir el riesgo de error en las in­di­ca­cio­nes te­m­po­ra­les. El llamado timestamp o sello de tiempo de ISO 8601, es­ta­n­da­ri­za­do in­te­r­na­cio­na­l­me­n­te, reduce cla­ra­me­n­te dicho riesgo.

Tras los valores de fecha y tiempo suele añadirse la di­fe­re­n­cia respecto al tiempo universal coor­di­na­do o, abreviado, UTC. Es una manera de tener en cuenta las posibles di­fe­re­n­cias entre franjas horarias u horarios de verano según el país, usando para ello ge­ne­ra­l­me­n­te el carácter Z.

Ejemplos de in­di­ca­cio­nes te­m­po­ra­les con franjas horarias según ISO 8601:

Ejemplo Ex­pli­ca­ción
2019-09-07T-15:50+00 Las 15:50 del 07.09.2019 en la franja horaria del tiempo universal coor­di­na­do.
2019-09-07T15:50+00Z También las 15:50 del 07.09.2019 en la franja horaria del tiempo universal coor­di­na­do, con la añadidura Z en la escritura.
2019-09-07T15:50+01:00 Las 15:50 del 07.09.2019 en la franja horaria española (CET).

Es im­po­r­ta­n­te tener en cuenta que el periodo de validez para los años en este formato solo abarca de 1583 a 9999, debido a que el ca­le­n­da­rio gre­go­riano se introdujo en 1583. Sin embargo, existe la po­si­bi­li­dad de aplicar la norma ISO 8601 a fechas o a in­di­ca­cio­nes an­te­rio­res a 1583, basta con aclarar primero con las partes in­vo­lu­cra­das en la co­mu­ni­ca­ción cómo se realizará la equi­va­le­n­cia.

Ventajas del estándar ISO 8601 frente a otras co­n­ve­n­cio­nes ha­bi­tua­les

ISO 8601 regula úni­ca­me­n­te datos numéricos y no incluye datos te­m­po­ra­les en cuya expresión se empleen palabras. No está pensada, por lo tanto, para sustituir las fórmulas propias de cada lengua, como 4 de febrero de 1995, sino para evitar ex­pre­sio­nes como 2/4/95 (forma es­ta­dou­ni­de­n­se) o 9:30 h.

Las ventajas que ofrece la norma ISO 8601 pueden resumirse en los si­guie­n­tes puntos:

  • Fácil de leer y redactar mediante software.
  • Fácil de cla­si­fi­car mediante una simple co­m­pa­ra­ción de las cadenas de ca­ra­c­te­res.
  • Co­m­pre­n­si­ble más allá de las barreras idio­má­ti­cas.
  • In­co­n­fu­n­di­ble entre otros formatos de fecha ha­bi­tua­les.
  • Coherente con el habitual formato de tiempo de 24 h, en el que las unidades más grandes (horas) también preceden a las más pequeñas (minutos y segundos).
  • Las cadenas de ca­ra­c­te­res que contienen una fecha seguida de la in­di­ca­ción de la hora también son fáciles de comparar y cla­si­fi­car (por ejemplo, 2019-09-07 20:15:00).
  • Notación breve y de longitud constante, lo que facilita tanto teclearla como es­tru­c­tu­rar­la en tablas.
  • Idéntica al formato de fecha chino, con lo cual el grupo cultural más numeroso del planeta (>25 %) ya está fa­mi­lia­ri­za­do con ella.
  • También los formatos de fecha que siguen el orden año-mes-día están muy ex­te­n­di­dos: ya son comunes en Japón, Corea, Hungría, Suecia, Finlandia, Dinamarca, entre otros países.
  • Un valor de cuatro cifras para los años evita problemas al cambiar de siglo.

Convertir datos desde y hacia el formato ISO

Na­tu­ra­l­me­n­te, se puede hablar de la co­n­ve­r­sión del formato en dos di­re­c­cio­nes: una fecha o dato temporal en el formato habitual de una región puede co­n­ve­r­ti­r­se al formato ISO, pero un dato en formato ISO también puede pasar a ex­pre­sar­se en la forma es­pe­cí­fi­ca de cierta región.

En la co­n­ve­r­sión que parte de una fecha ISO (ISO date) y le da una forma más fácil o legible, el sello de tiempo o timestamp de ISO 8601 suele tener la siguiente forma:

String dateString = "2019-09-26T07:58:30.996+0200"

Este string tiene aún la forma yyyy-MM-dd. El símbolo que separa la fecha y la hora es T y el formato de la hora es HH:mm:ss más la re­fe­re­n­cia al UTC, .sssz. El formato entero tiene, por lo tanto, la siguiente forma: yyyy-MM-dd T HH:mm:ss.SSSZ.

La co­n­ve­r­sión que queremos realizar tra­n­s­fo­r­ma­rá esta expresión ISO, por ejemplo, al típico formato español, es decir: HH:mm, dd.MM.yyyy (horas, minutos; día, mes, año).

public String getOurDate() {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
try {
    Date unformatedDate = format.parse(date);
    String formatedDate = new SimpleDateFormat("HH:mm dd.MM.yyyy").format(unformatedDate);
    return formatedDate;
    }   catch (ParseException e){
            System.out.println("Error")
    }
    return date;
}
Consejo

Una al­te­r­na­ti­va a la co­n­ve­r­sión manual es la que ofrecen algunos sitios web para tra­n­s­fo­r­mar los datos au­to­má­ti­ca­me­n­te al formato deseado. Un ejemplo de ello es DenCode Converter, que permite in­tro­du­cir di­re­c­ta­me­n­te la fecha en el formato inicial y luego escoger en qué formato desea co­n­ve­r­ti­r­se. También se puede escoger la franja horaria.

Ir al menú principal