Conversor de timestamp Unix: de epoch a fecha y de fecha a epoch
Convierte segundos, milisegundos, microsegundos o nanosegundos epoch en fechas de cualquier zona horaria, y al revés. Reloj en vivo, modo por lotes y fragmentos de código.
De marca de tiempo a fecha
De fecha a marca de tiempo
Inicio y fin del día, la semana, el mes y el año
Conversión por lotes
| 1700000000 | s | |
| 1760572800000 | ms | |
| -1 | s | |
| 2038-01-19 03:14:07 | fecha | |
| 0 | s |
Obtener la marca de tiempo actual en código
Math.floor(Date.now() / 1000) // seconds Date.now() // milliseconds
Funciona por completo en tu navegador. Nada de lo que introduces se nos envía ni se guarda. Ver todas las herramientas gratis.
¿Encontraste un problema o algo que podría mejorar? Leemos todos los mensajes y lo arreglamos rápido.
Este conversor de timestamp Unix convierte un valor epoch en una fecha legible y una fecha en un valor epoch, en UTC, en tu propia zona horaria o en cualquiera de las aproximadamente 400 zonas IANA que conoce tu navegador. Pega 1760572800, 1760572800000 o un valor de nanosegundos de 19 dígitos sacado de una línea de log: la unidad se detecta por el número de dígitos, y puedes cambiarla cuando un valor es ambiguo.
Los valores grandes y poco habituales se tratan con exactitud. Los dígitos se analizan como BigInt, así que un timestamp en nanosegundos conserva sus últimos dígitos en lugar de redondearse; los timestamps negativos anteriores a 1970 se redondean hacia abajo al milisegundo correcto, y cualquier valor fuera del rango de fechas de JavaScript (aproximadamente del 271 821 a. C. al 275 760 d. C.) se indica como fuera de rango en lugar de mostrarse como "Invalid Date". Los desfases horarios, incluidos los cambios de horario de verano, salen de los propios datos de zonas horarias de tu navegador. Nada de lo que introduces sale de la página.
Cómo usarla
- Pega un timestamp en el primer campo. La tabla lo muestra en UTC, en tu zona, en la zona seleccionada, en ISO 8601, en RFC 2822 y como tiempo relativo.
- Si la unidad es incorrecta (un valor de 12 dígitos puede ser segundos después del año 5138 d. C. o milisegundos de 1973), elígela en el menú Unidad.
- Para hacerlo al revés, escribe una fecha como YYYY-MM-DD HH:mm:ss y elige la zona en la que está escrita; las cadenas ISO con Z o con un desfase se leen tal cual.
- Usa la tabla de inicio/fin para consultas de rango como "todo lo de este mes", y el cuadro por lotes para una columna de valores de un CSV o un log.
- Copia cualquier valor con su botón, o copia el fragmento de tu lenguaje para obtener el timestamp actual en código.
Preguntas frecuentes
¿Qué es un timestamp Unix?
Un timestamp Unix (tiempo epoch) es el número de segundos transcurridos desde las 00:00:00 UTC del 1 de enero de 1970, sin contar los segundos intercalares. No tiene zona horaria: el mismo instante tiene el mismo timestamp en todas partes, y por eso lo usan las bases de datos y las API. Muchos sistemas guardan milisegundos (Date.now() de JavaScript, currentTimeMillis de Java), y algunos guardan microsegundos o nanosegundos.
¿Cómo sé si un timestamp está en segundos o en milisegundos?
Cuenta los dígitos. Un timestamp actual en segundos tiene 10 dígitos; en milisegundos, 13; en microsegundos, 16, y en nanosegundos, 19. Esta herramienta usa esos límites automáticamente. El único rango ambiguo es el de 11 a 12 dígitos, que puede ser segundos en un futuro lejano o milisegundos de principios de los años 70; ahí elige la unidad a mano.
¿Qué es el problema del año 2038?
Los sistemas que guardan el tiempo Unix como un entero de 32 bits con signo solo pueden contar hasta 2 147 483 647, que corresponde a las 03:14:07 UTC del 19 de enero de 2038. Un segundo después, el valor da la vuelta a un número negativo y se lee como diciembre de 1901. Los sistemas operativos, lenguajes y bases de datos modernos usan tiempo de 64 bits, pero los dispositivos embebidos antiguos, algunos formatos de archivo y las columnas de bases de datos declaradas como INT de 32 bits siguen teniendo el problema.
¿Los timestamps Unix incluyen los segundos intercalares?
No. El tiempo Unix trata cada día como exactamente 86 400 segundos, así que un segundo intercalar no se cuenta y el timestamp se repite o se detiene durante un segundo cuando se produce. Eso simplifica la aritmética de fechas a costa de desviarse del tiempo atómico (TAI) en los segundos intercalares acumulados, actualmente 37. Para casi cualquier trabajo con aplicaciones, esto no importa.
¿Un timestamp Unix puede ser negativo?
Sí. Los valores negativos cuentan hacia atrás desde 1970: -1 son las 23:59:59 UTC del 31 de diciembre de 1969, y -86400 es el inicio de ese día. La mayoría de los lenguajes tratan bien los timestamps negativos, pero algunas API antiguas y funciones de hojas de cálculo los rechazan, así que compruébalo antes de guardar fechas de nacimiento o fechas históricas como valores epoch.
¿Por qué la hora convertida parece desfasada unas horas?
Casi siempre es una confusión de zonas horarias: el timestamp es correcto, pero se mostró en UTC cuando esperabas la hora local, o una cadena de fecha local se interpretó como UTC. Un timestamp nunca lleva zona. Revisa aquí el selector de zona y, en el código, asegúrate de que una cadena de fecha sin desfase se interpreta en la zona que pretendes.
Segundos, milisegundos, microsegundos, nanosegundos: quién usa cada uno
• Segundos (10 dígitos): time() de Unix y POSIX, time() de PHP, int(time.time()) de Python, EXTRACT(EPOCH) de PostgreSQL, los claims exp/iat/nbf de JWT y la mayoría de las API HTTP.
• Milisegundos (13 dígitos): Date.now() de JavaScript, System.currentTimeMillis() de Java, Elasticsearch y muchas API JSON, y los timestamps de los registros de Kafka.
• Microsegundos (16 dígitos): el almacenamiento interno de timestamps de PostgreSQL, la precisión de datetime de Python y TIMESTAMP_MICROS de Google BigQuery.
• Nanosegundos (19 dígitos): time.UnixNano() de Go, time.time_ns() de Python, InfluxDB y remote-write de Prometheus, y clock_gettime de Linux. Un número de JavaScript no puede guardarlos con exactitud, y por eso esta herramienta los analiza como BigInt.
Cuando dos sistemas difieren en un factor de 1000, uno está en segundos y el otro en milisegundos. Ese único error explica la mayoría de los fallos de "la fecha sale en 1970" y "la fecha sale en el año 50 000".
Zonas horarias y horario de verano: qué puede salir mal
Convertir un timestamp a hora local nunca es ambiguo: un instante corresponde a una sola hora de reloj en cada zona. Al revés, no. Cuando se adelantan los relojes, una hora local como las 02:30 del día del cambio no existe; cuando se atrasan, las 01:30 ocurren dos veces.
Este conversor sigue las mismas reglas que el comportamiento predeterminado de la API Temporal de JavaScript: una hora que se salta se lee con el desfase de antes del cambio (así, las 02:30 pasan a ser las 03:30 en horario de verano), y una hora repetida se resuelve con la primera aparición. Si tu código usa otra regla, el resultado puede diferir en una hora alrededor de esas dos fechas cada año.
La práctica más segura es guardar y transmitir los instantes como timestamps UTC o como cadenas ISO 8601 con un desfase explícito, y convertir a hora local solo para mostrarlos, usando un nombre de zona IANA como America/Toronto en lugar de un desfase fijo como -05:00, que es incorrecto durante medio año.
ISO 8601 frente a RFC 2822 frente a tiempo Unix
ISO 8601 (2026-10-16T08:00:00Z o 2026-10-16T04:00:00-04:00) se ordena correctamente como texto, no es ambiguo y es lo que esperan las API JSON, los atributos datetime de HTML y la mayoría de las bases de datos. Úsalo siempre que una persona pueda leer el valor.
RFC 2822 (Fri, 16 Oct 2026 08:00:00 +0000) es el formato del correo electrónico y de las cabeceras HTTP. Es legible, pero no se ordena como texto y solo está definido a partir del año 1900.
Un timestamp Unix es lo más compacto y lo más rápido de comparar, pero es ilegible sin un conversor y no da ninguna pista de su unidad. Una regla razonable: tiempo Unix dentro de un sistema, ISO 8601 en sus fronteras.
Herramientas gratis relacionadas
- Generador de expresiones cron — Crea una programación cron con menús desplegables o pega una, léela en lenguaje claro y ve las 10 próximas ejecuciones en tu zona horaria y en UTC. Gratis, en tu navegador.
- Decodificador de JWT — Decodifica la cabecera y el payload de un JWT, lee la caducidad en lenguaje claro, verifica firmas HS, RS, PS y ES o firma un token nuevo. Nada sale de tu navegador.
- Generador de UUID — Genera en lote UUID v4 o v7 ordenados por tiempo, ULID y NanoID, o pega un ID para ver su versión y la marca de tiempo que contiene.
- Conversor de bases numéricas — Convierte enteros de cualquier tamaño entre binario, octal, decimal, hexadecimal, base 32, base 36 y cualquier base de 2 a 36, con vista de complemento a dos.