2026-09-26T15:30:45Z son las 17:30:45 del 26 de septiembre en la España peninsular (UTC+02:00)
La Z al final de una marca de tiempo ISO 8601 significa UTC (tiempo universal coordinado). La España peninsular y Baleares van 1 hora por delante de UTC en invierno (CET, UTC+01:00) y 2 horas por delante durante el horario de verano (CEST, UTC+02:00, desde el último domingo de marzo hasta el último domingo de octubre). Por eso las 15:30:45 UTC del 26 de septiembre de 2026 son las 17:30:45 en Madrid. Un valor que ya termina en +02:00 está dado en hora de Madrid desde el principio, así que no se le vuelve a sumar nada.
Al pegar un texto de fecha y hora en el conversor de arriba, este averigua el formato y separa el texto en fecha, hora, fracción de segundo y zona horaria, cada parte con su color. El conversor empieza con la zona horaria del dispositivo en que se abre; los ejemplos y tablas de esta página usan Madrid para que las cifras no cambien. La franja bajo la respuesta coloca el día UTC y el día local sobre un mismo eje de tiempo, marca dónde cambia la fecha y da el rango UTC de un día local. Un registro con muchas líneas se puede convertir de una vez.
Cuándo hay que pasar una hora UTC a hora local
Los servidores y los programas suelen intercambiar horas en UTC o en texto ISO 8601 con desfase, porque así no dependen del lugar. Quien lee el valor necesita pasarlo al reloj local para saber qué ocurrió realmente.
- Al leer una respuesta de API o JSON: un valor como
"createdAt": "2026-09-26T15:30:45.123Z"termina en Z, es decir, está en UTC. Para saber si coincide con el cliente que dice haber hecho el pedido a las 17:30, hay que pasarlo a hora local. - Al leer registros de servidor: un servidor configurado en UTC escribe
[26/Sep/2026:15:30:45 +0000]. La hora de una caída hay que convertirla para ordenarla junto a otros registros. - Al revisar cabeceras de correo o HTTP:
Date: Sat, 26 Sep 2026 15:30:45 GMTusa día de la semana y mes en inglés, pero señala el mismo instante. - Al buscar un día local en datos guardados en UTC: para obtener el 27 de septiembre en Madrid de una columna UTC, la consulta debe ir desde 2026-09-26T22:00:00Z hasta 2026-09-27T22:00:00Z sin incluir esta última. La línea bajo la franja copia ese rango como condición SQL.
- Al escribir un ajuste que debe ir en UTC: envíos programados, caducidades o el formato básico
20260926T153045Zde las firmas de AWS.
Cómo se calcula: se resta el desfase escrito y se aplica el de Madrid
Hora de Madrid = hora escrita − desfase escrito + desfase de Madrid (+1 h en invierno, +2 h en verano)
- Busca la marca de zona horaria al final: Z (o +00:00) es UTC, +05:30 es un lugar 5 horas y 30 minutos por delante de UTC, y -04:00 uno 4 horas por detrás. Sin marca, el texto por sí solo no dice a qué lugar pertenece la hora.
- Resta el desfase para obtener UTC: 2026-09-26T08:00:00+05:30 menos 5:30 son las 02:30 UTC. Con un desfase negativo se suma.
- Aplica el desfase de Madrid vigente en ese momento: 02:30 UTC más 2 horas son las 04:30. En enero, la misma hora UTC sería las 03:30, porque el desfase es +01:00 (véase el horario de verano).
- Cambia la fecha si se pasa de medianoche: las 20:00 con desfase -04:00 son las 00:00 UTC del día siguiente y las 02:00 en Madrid. Al revés, restar horas por debajo de las 00:00 lleva al día anterior.
La fracción de segundo no cambia con la zona horaria, porque los desfases son de horas y minutos enteros. El conversor copia tal cual los dígitos como .123 o .123456789.
Cómo leer las partes de una marca ISO 8601
| Parte | Ejemplo | Significado |
|---|---|---|
| Fecha | 2026-09-26 | Año-mes-día. El mes y el día llevan siempre dos cifras. |
| Separador | T | Letra entre la fecha y la hora. RFC 3339 admite también un espacio para facilitar la lectura. |
| Hora | 15:30:45 | Horas:minutos:segundos en formato de 24 horas. |
| Fracción | .123 | Cifras por debajo del segundo: 3 son milisegundos, 6 microsegundos y 9 nanosegundos. |
| Zona horaria | Z | UTC. El mismo instante que +00:00. |
| Zona horaria | +02:00 | Hora de un lugar 2 horas por delante de UTC, como Madrid en horario de verano. |
| Zona horaria | -00:00 | La hora UTC es correcta, pero se desconoce el desfase local. |
If the time in UTC is known, but the offset to local time is unknown, this can be represented with an offset of "-00:00".RFC 3339 4.3 Unknown Local Offset Convention (texto original en inglés). La sección 5.6 del mismo documento añade que t y z pueden escribirse en minúscula.
Formatos que lee el conversor
Se pueden pegar tal cual. Los espacios al principio y al final y las cifras de ancho completo se limpian solos.
| Formato | Ejemplo | Dónde aparece |
|---|---|---|
| ISO 8601 extendido (RFC 3339) | 2026-09-26T15:30:45.123Z | Respuestas de API y JSON, toISOString() de JavaScript |
| Separador con espacio, desfase corto | 2026-09-26 15:30:45.123+00 | Salida por defecto (ISO) de PostgreSQL |
| Sin zona horaria | 2026-09-26 17:30:45 | Columnas DATETIME, hojas de cálculo exportadas de una base de datos |
| ISO 8601 básico | 20260926T153045Z | Firmas de peticiones de AWS, nombres de archivo |
| Fecha HTTP | Sat, 26 Sep 2026 15:30:45 GMT | Cabeceras HTTP Date y Last-Modified |
| Fecha de correo RFC 2822 | Sat, 26 Sep 2026 15:30:45 +0000 | Cabecera Date de un correo en bruto |
| Cadena de Date de JavaScript | Sat Sep 26 2026 17:30:45 GMT+0200 (hora de verano de Europa central) | String(new Date()) en la consola del navegador |
| Comando date | Sat Sep 26 17:30:45 CEST 2026 | Salida de date en macOS o con la configuración regional C |
| Registro de servidor web | 26/Sep/2026:15:30:45 +0000 | Registros de acceso de nginx y Apache (Common Log Format) |
| Números año/mes/día | 2026/09/26 17:30:45 | Registros y exportaciones que empiezan por el año |
| Solo dígitos | 1790436645 | Tiempo Unix (el número de dígitos distingue segundos de milisegundos) |
También se leen las fechas largas escritas en coreano o japonés. Para trabajar solo con números, el conversor de marcas de tiempo Unix detalla mejor la detección de unidades y el rango de 32 bits. La fecha del tipo 26/09/2026 no se lee, porque el orden de día y mes cambia según el país.
Ejemplos de conversión
| Entrada | Hora de Madrid | UTC | Fecha |
|---|---|---|---|
2026-09-26T15:30:45.123Z | 2026-09-26 17:30:45.123 | 2026-09-26T15:30:45.123Z | Mismo día |
2026-09-26T03:00:00Z | 2026-09-26 05:00:00 | 2026-09-26T03:00:00Z | Mismo día |
2026-09-26T08:00:00+05:30 | 2026-09-26 04:30:00 | 2026-09-26T02:30:00Z | Mismo día |
2026-09-26T20:00:00-04:00 | 2026-09-27 02:00:00 | 2026-09-27T00:00:00Z | Día siguiente |
2026-09-26T17:30:45+02:00 | 2026-09-26 17:30:45 | 2026-09-26T15:30:45Z | Ya está en hora de Madrid |
2026-01-01 00:15 (leído como hora de Madrid) | 2026-01-01 00:15:00 | 2025-12-31T23:15:00Z | En UTC es el día anterior |
Sat, 26 Sep 2026 15:30:45 GMT | 2026-09-26 17:30:45 | 2026-09-26T15:30:45Z | Mismo día |
2026-12-31T23:00:00Z | 2027-01-01 00:00:00 | 2026-12-31T23:00:00Z | Año nuevo en Madrid |
2026-03-29T01:00:00Z | 2026-03-29 03:00:00 | 2026-03-29T01:00:00Z | Empieza el horario de verano (+02:00) |
2026-10-25T01:00:00Z | 2026-10-25 02:00:00 | 2026-10-25T01:00:00Z | Vuelve el horario de invierno (+01:00) |
A partir de las 22:00 UTC, en Madrid ya es el día siguiente
Madrid va 1 o 2 horas por delante de UTC, así que las últimas horas del día UTC pertenecen ya a la fecha siguiente en Madrid: en verano, desde las 22:00 UTC (las 00:00 en Madrid), y en invierno, desde las 23:00 UTC. Dicho al revés, un día natural de Madrid va desde las 22:00 UTC del día anterior hasta las 22:00 UTC (23:00 en invierno) de ese día.
| UTC | 00:00 | 03:00 | 06:00 | 09:00 | 12:00 | 15:00 | 18:00 | 21:00 |
|---|---|---|---|---|---|---|---|---|
| Madrid, invierno (CET, +01:00) | 01:00 | 04:00 | 07:00 | 10:00 | 13:00 | 16:00 | 19:00 | 22:00 |
| Madrid, verano (CEST, +02:00) | 02:00 | 05:00 | 08:00 | 11:00 | 14:00 | 17:00 | 20:00 | 23:00 |
Si los datos se agrupan por fecha UTC, lo que ocurre en Madrid entre las 00:00 y las 02:00 de verano queda en el día anterior. Para agrupar por fecha de Madrid hay que consultar el rango UTC como intervalo semiabierto. Para el 27 de septiembre de 2026 en Madrid:
-- Madrid, 2026-09-27 (un día)
WHERE created_at >= '2026-09-26T22:00:00Z'
AND created_at < '2026-09-27T22:00:00Z'
Cerrar el rango en 23:59:59 dejaría fuera una fracción como 23:59:59,5, por lo que es más seguro escribir el final como "antes de la medianoche del día siguiente". Los dos días del año en que cambia la hora, el día local no dura 24 horas: el 29 de marzo de 2026 va de 2026-03-28T23:00:00Z a 2026-03-29T22:00:00Z (23 horas) y el 25 de octubre de 2026, de 2026-10-24T22:00:00Z a 2026-10-25T23:00:00Z (25 horas).
Cómo pasar a hora de Madrid desde el código
En un programa es más seguro indicar el nombre de la zona horaria (Europe/Madrid) que sumar o restar horas, porque el nombre incluye las reglas del horario de verano de cada año.
| Lenguaje | Código | Qué tener en cuenta |
|---|---|---|
| JavaScript | new Date('2026-09-26T15:30:45Z').toLocaleString('es-ES', { timeZone: 'Europe/Madrid' }) | '2026-09-26T15:30' sin desfase se lee en la zona del dispositivo, mientras que una fecha sola como '2026-09-26' se lee como UTC. |
| Python 3.11 o posterior | datetime.fromisoformat('2026-09-26T15:30:45Z').astimezone(ZoneInfo('Europe/Madrid')) | fromisoformat() en 3.10 y anteriores no lee una Z final. |
| Consulta SQL | created_at >= '2026-09-26T22:00:00Z' AND created_at < '2026-09-27T22:00:00Z' | Si la columna no tiene zona horaria, comprueba primero con qué zona se guardaron los valores. |
When the UTC offset representation is absent, date-only forms are interpreted as a UTC time and date-time forms are interpreted as a local time.ECMA-262 21.4.1.32 Date Time String Format (texto original en inglés). El mismo texto se lee en otra zona horaria según lleve o no hora.
El horario de verano en España
La España peninsular y Baleares usan UTC+01:00 como hora estándar (CET) y UTC+02:00 en horario de verano (CEST). Las fechas han cambiado con los años y los datos de zonas horarias de IANA (Europe/Madrid) registran cada cambio. El conversor sigue ese registro, así que una marca antigua se convierte con la regla vigente en esa fecha.
| Periodo | Desfase (estándar / verano) | Regla |
|---|---|---|
| Hasta el 16 de marzo de 1940 | +00:00 | Hora de Greenwich, con adelantos puntuales entre 1937 y 1939 |
| Desde el 17 de marzo de 1940 | +01:00 | Hora de Europa central (CET) como hora estándar |
| 1942 a 1946 y 1949 | +01:00 / +02:00 | Horario de verano en primavera y verano, con fechas distintas cada año |
| 1950 a 1973 | +01:00 | Sin cambio de hora |
| 1974 a 1977 | +01:00 / +02:00 | El horario de verano vuelve, de abril (en 1976, de marzo) a septiembre u octubre, con cambio a medianoche |
| 1978 a 1995 | +01:00 / +02:00 | Desde el último domingo de marzo o el primero de abril hasta el último domingo de septiembre (en 1978, el 1 de octubre), a las 03:00 (02:00 al volver) |
| 1996 hasta hoy | +01:00 / +02:00 | Desde el último domingo de marzo hasta el último domingo de octubre, a la 01:00 UTC |
Canarias usa una hora menos que la península: UTC+00:00 en invierno y UTC+01:00 en verano (Atlantic/Canary, desde 1980 con horario de verano). Los cambios de hora de Canarias ocurren en el mismo instante UTC que los de la península. Así, las 15:30:45 UTC del 26 de septiembre son las 16:30:45 en Canarias, y en enero las 15:30:45 UTC son las 15:30:45 en Canarias.
En 2026 el reloj de Madrid cambia el 29 de marzo y el 25 de octubre. El 29 de marzo las 02:00 pasan a ser las 03:00 (a la 01:00 UTC), de modo que 2026-03-29 02:30 no existe en Madrid; el conversor lo lee como las 03:30 y lo avisa. El 25 de octubre las 03:00 vuelven a ser las 02:00 (a la 01:00 UTC), por lo que 2026-10-25 02:30 ocurre dos veces; el conversor usa la primera, a +02:00 (00:30 UTC), y también lo avisa. No todos los países de habla hispana usan horario de verano; en la lista de zonas del conversor se puede comprobar qué desfase tiene cada lugar en una fecha concreta.
Errores frecuentes
- Volver a restar el desfase de un valor +02:00: 2026-09-26T17:30:45+02:00 ya está en hora de Madrid. Restar otras 2 horas da unas falsas 15:30.
- Dar por UTC un valor sin zona horaria: 2026-09-26 17:30:45 no lleva zona horaria. Averigua si el programa que lo guardó escribió hora de Madrid o UTC y elige la opción correspondiente en "Valores sin zona horaria, interpretar en".
- Confundir CET y CEST: 2026-09-26T17:30:45 CET se lee como +01:00, y da las 16:30:45 UTC, es decir, las 18:30:45 en Madrid en septiembre, porque entonces rige CEST. En verano hay que usar CEST, en invierno CET, o un desfase numérico.
- Comparar solo las fechas: el 26 de septiembre en UTC y el 26 de septiembre en Madrid son dos días distintos desplazados 2 horas. Hay que indicar con qué zona horaria se cuentan los datos diarios.
- Fiarse de abreviaturas como CST o IST: CST es la hora estándar central de EE. UU. (-06:00) y también la de China (+08:00); IST la usan India, Irlanda e Israel. El conversor solo lee las abreviaturas de EE. UU. cuyo valor fija RFC 5322, y pide un desfase numérico cuando varios países comparten la abreviatura.
- No distinguir Z de -00:00: ambas son UTC, pero -00:00 añade que se desconoce el desfase local. Un -0000 en la cabecera de un correo significa lo mismo (RFC 5322 3.3).
Límites
- El cálculo de zonas horarias usa los datos de IANA incluidos en el navegador. Según su versión, un desfase que cambió hace mucho o hace poco puede diferir.
- No se leen las fechas con semana como 2026-W39-6, las ordinales como 2026-269 ni formas cuyo orden de día y mes depende del país, como 26/09/2026.
- Un segundo intercalar como 23:59:60 no existe en el tiempo Unix, así que se cuenta como el segundo 0 siguiente.
- El formato asctime (Sat Sep 26 15:30:45 2026) es UTC en la especificación HTTP, pero muchos programas lo imprimen en hora local, por lo que sigue el ajuste de valores sin zona horaria.
- Las fracciones de segundo se aceptan hasta nanosegundos (9 dígitos). Se leen las abreviaturas UTC, GMT, KST, JST, WIB, WITA, WIT, CET, CEST y las de EE. UU. de RFC 5322.
Fuentes
- 01IETF RFC 3339: Date and Time on the Internet: Timestamps4.3 -00:00 (desfase local desconocido), 5.6 gramática de date-time con t y z en minúscula y espacio como separador, 5.7 segundo intercalar 60
- 02IETF RFC 5322: Internet Message Format3.3 date-time (el día de la semana debe coincidir con la fecha, significado de -0000), 4.3 nombres de zona obsoletos UT, GMT y EST a PDT con sus valores
- 03IETF RFC 9110: HTTP Semantics, 5.6.7 Date/Time FormatsEjemplo de fecha HTTP IMF-fixdate "Sun, 06 Nov 1994 08:49:37 GMT"; el formato asctime se toma como UTC
- 04ECMA-262: 21.4.1.32 Date Time String FormatLas formas con solo fecha son UTC y las de fecha y hora son hora local. Formato de 21.4.4.41 Date.prototype.toString
- 05Documentación de Python: datetime.fromisoformatDesde 3.11 lee la mayoría de los formatos ISO 8601, por ejemplo '2011-11-04T00:05:23Z' como UTC
- 06AWS: manejo de fechas en Signature Version 4"The time stamp must be in UTC and use the following ISO 8601 format: YYYYMMDDTHHMMSSZ"
- 07nginx: ngx_http_log_module$time_local "local time in the Common Log Format"
- 08Documentación de PostgreSQL: 8.5.2 Date/Time OutputEjemplo de salida en estilo ISO "1997-12-17 07:37:16-08"
- 09Base de datos de zonas horarias de IANAArchivo europe: registros de Europe/Madrid y Atlantic/Canary (cambios de hora desde 1940 y horarios de verano)
Fuentes comprobadas el 2026-10-20. Los datos de zonas horarias se revisan varias veces al año, y las horas en pantalla siguen la versión incluida en el navegador que se usa.
Preguntas frecuentes
¿Qué significa la Z al final de una fecha ISO?
La Z indica que la hora está en UTC (tiempo universal coordinado). 2026-09-26T15:30:45Z y 2026-09-26T15:30:45+00:00 son el mismo instante. RFC 3339 admite también la z minúscula.
¿Cuántas horas hay que sumar para pasar de UTC a la hora de Madrid?
2 horas en horario de verano (CEST, UTC+02:00) y 1 hora el resto del año (CET, UTC+01:00). En 2026 el horario de verano va del 29 de marzo al 25 de octubre. El conversor toma el desfase de la fecha exacta de los datos de zonas horarias de IANA que trae el navegador.
¿Qué hora es en Madrid 2026-09-26T15:30:45Z?
Las 17:30:45 del sábado 26 de septiembre de 2026, porque ese día Madrid está en CEST (UTC+02:00). En formato RFC 3339 es 2026-09-26T17:30:45+02:00.
Si una hora termina en +02:00, ¿hay que sumar otras 2 horas?
No. +02:00 significa que la hora ya está dada en un lugar 2 horas por delante de UTC, así que el valor es la hora de Madrid en horario de verano. Al escribir 2026-09-26T17:30:45+02:00 el conversor muestra la forma UTC 2026-09-26T15:30:45Z y la etiqueta de que ya está en hora local.
¿Cuál es en UTC la hora de Madrid 1 de enero de 2026 a las 00:15?
2025-12-31T23:15:00Z. En enero Madrid está en CET (UTC+01:00), así que se resta 1 hora para llegar a UTC, y en UTC todavía es 31 de diciembre. Escrito con desfase, el mismo instante es 2026-01-01T00:15:00+01:00.
¿Se puede convertir una hora sin zona horaria, como 2026-09-26 17:30:45?
Sí. El texto por sí solo no dice a qué zona pertenece, así que el ajuste "Valores sin zona horaria, interpretar en" permite elegir la zona local seleccionada o UTC. Leída como hora de Madrid, la forma UTC es 2026-09-26T15:30:45Z.
¿Cómo busco un día de Madrid en datos guardados en UTC?
Un día de Madrid va de las 22:00 UTC a las 22:00 UTC del día siguiente en verano, y de las 23:00 a las 23:00 en invierno. Para el 27 de septiembre de 2026 se consulta desde 2026-09-26T22:00:00Z incluida hasta 2026-09-27T22:00:00Z sin incluir. El botón "Copiar condición SQL" bajo la franja copia el rango.
¿Puedo convertir las horas de todo un registro de una vez?
Abre "Convertir varias líneas a la vez" y pega el registro. Solo se buscan y convierten los lugares con fecha y hora, como ISO 8601, fechas HTTP u horas de registros de servidor web. Se pueden sustituir en el mismo lugar o añadir la hora local tras el valor original, y las fechas no válidas se dejan igual.
¿Puedo ver la hora actual en UTC y en hora local?
Pulsa "Ahora" junto al cuadro y la hora actual se escribe en forma UTC y se actualiza cada segundo. La respuesta muestra la hora local y la franja marca el instante presente. Al pulsar otra vez o escribir en el cuadro, se detiene.
¿Tiene en cuenta los cambios de horario de verano?
Sí. El 29 de marzo de 2026 el reloj de Madrid pasa de las 02:00 a las 03:00, así que 2026-03-29 02:30 no existe y se lee como las 03:30. El 25 de octubre de 2026 las 02:30 ocurren dos veces y se usa la primera (+02:00). En ambos casos el conversor avisa de lo que hizo.