Convertidor de Timestamps
Convierte timestamps Unix (segundos o milisegundos desde la Época Unix) a cadenas de fecha-hora legibles, y convierte fechas de nuevo a timestamps Unix. Soporta zonas horarias UTC y locales.
El tiempo Unix comenzó a contar el 1 de enero de 1970 00:00:00 UTC - la Época Unix. Cada timestamp Unix es el número de segundos (o milisegundos en muchos sistemas modernos) transcurridos desde ese momento. Los timestamps se utilizan en programación, bases de datos y APIs porque son independientes de la zona horaria, ordenables como enteros y fáciles de comparar aritméticamente. Leer 1711843200 como un número en bruto no te dice nada. Este convertidor lo traduce a 2024-03-31T00:00:00.000Z al instante, usando ISO 8601 - el estándar internacional de fecha. Todas las conversiones se realizan localmente en tu navegador.
Cómo Usar Esta Herramienta
- Timestamp a Fecha: Ingresa un timestamp Unix en segundos o milisegundos - la herramienta muestra la fecha en UTC y tu zona horaria local.
- Fecha a Timestamp: Ingresa una fecha y hora usando el selector de fecha, luego copia el timestamp Unix resultante en segundos y milisegundos.
- Haz clic en Ahora para llenar el timestamp actual como referencia.
- Usa el selector de formato para mostrar fechas en ISO 8601, RFC 2822, o formato legible.
Entendiendo los Timestamps Unix
Segundos vs Milisegundos
Dos convenciones están en uso generalizado. El tiempo Unix en segundos (10 dÃgitos a partir de 2024, por ejemplo, 1711843200) es utilizado por APIs POSIX, time() de C/C++, time.time() de Python, y la mayorÃa de los sistemas del lado del servidor. El tiempo Unix en milisegundos (13 dÃgitos, por ejemplo, 1711843200000) es utilizado por Date.now() de JavaScript, System.currentTimeMillis() de Java, y muchas APIs web. Regla rápida: 10 dÃgitos significa segundos; 13 dÃgitos significa milisegundos. El mayor timestamp válido de entero con signo de 32 bits es 2147483647 (segundos), correspondiente al 19 de enero de 2038 - el problema del año 2038 para sistemas heredados.
Formato ISO 8601
ISO 8601 es el estándar internacional para representaciones de fecha y hora. El formato completo UTC es YYYY-MM-DDTHH:mm:ss.sssZ, donde T separa la fecha y la hora y Z denota UTC (hora Zulu). ISO 8601 es el formato recomendado para respuestas de API e intercambio de datos porque es inequÃvoco, ordenable lexicográficamente (el orden de cadena coincide con el orden cronológico), y analizable en todos los lenguajes de programación principales.
Ejemplo
Timestamp a Fecha
Entrada (segundos): 1711843200
Fecha UTC (ISO 8601): 2024-03-31T00:00:00.000Z
RFC 2822: Dom, 31 Mar 2024 00:00:00 +0000
Legible (UTC): Domingo, 31 de marzo de 2024 a las 12:00:00 AM UTC
Fecha a Timestamp
Entrada: 2024-03-31 00:00:00 UTC
Unix (segundos): 1711843200
Unix (milisegundos): 1711843200000
Formatos Comunes de Timestamp
- Unix segundos (POSIX):
1711843200- 10 dÃgitos, usado en C, Python, Go, la mayorÃa de las APIs del sistema - Unix milisegundos:
1711843200000- 13 dÃgitos, usado en JavaScript, Java, muchas APIs REST - ISO 8601 UTC:
2024-03-31T00:00:00Z- recomendado para respuestas de API y almacenamiento de datos - ISO 8601 con desplazamiento:
2024-03-31T03:00:00+03:00- incluye el desplazamiento de la zona horaria para una hora local inequÃvoca - RFC 2822:
Dom, 31 Mar 2024 00:00:00 +0000- usado en encabezados de correo electrónico y encabezadoDatede HTTP - Referencia de Época Unix:
0=1970-01-01T00:00:00Z
Mejores Prácticas
- Almacena timestamps en UTC en bases de datos - convierte a hora local solo en la capa de visualización
- Usa ISO 8601 para respuestas de API - es inequÃvoco y analizable en todos los lenguajes
- Prefiere milisegundos sobre segundos para nuevos sistemas para evitar la aritmética de punto flotante con precisión de sub-segundos
- Migra el almacenamiento de timestamps de 32 bits a 64 bits para evitar el problema de desbordamiento del año 2038
Para identificadores únicos con timestamps incrustados, UUID v7 (RFC 9562) combina timestamps de milisegundos Unix con bits aleatorios para IDs únicos y ordenables - usa el Generador de UUID para UUID v4 cuando no se requiere orden. Para depurar respuestas JSON que contienen timestamps, el Formateador JSON hace que los campos de timestamp anidados sean legibles.
Preguntas frecuentes
¿Qué es un timestamp Unix?
Un timestamp Unix es el número de segundos transcurridos desde la Época Unix - medianoche (00:00:00 UTC) del 1 de enero de 1970 - excluyendo segundos intercalares. Es independiente de la zona horaria, un entero simple y fácil de comparar y ordenar. Los timestamps Unix son la representación interna universal del tiempo en sistemas operativos, bases de datos y lenguajes de programación.
¿Cómo puedo saber si un timestamp está en segundos o milisegundos?
Cuenta los dÃgitos. A partir de 2024, los timestamps Unix en segundos tienen 10 dÃgitos (por ejemplo, 1700000000). Los timestamps en milisegundos tienen 13 dÃgitos (por ejemplo, 1700000000000). Si el número es menor a aproximadamente 10 mil millones, probablemente sea en segundos. Los timestamps de precisión en nanosegundos (usados en algunos sistemas de alta frecuencia) tienen 19 dÃgitos.
¿Cuál es el problema del año 2038?
Los sistemas que almacenan timestamps Unix como enteros con signo de 32 bits solo pueden representar valores hasta 2,147,483,647. Ese máximo corresponde al 19 de enero de 2038 a las 03:14:07 UTC. Agregar un segundo después de eso causa un desbordamiento de entero a un número negativo grande, rompiendo los cálculos de fecha. Los sistemas modernos de 64 bits son seguros hasta aproximadamente 292 mil millones de años a partir de ahora.
¿El convertidor usa mi zona horaria local?
SÃ. La herramienta muestra tanto la hora UTC como tu hora local. La hora local se determina por la configuración de la zona horaria de tu navegador, que refleja la zona horaria configurada en tu sistema operativo. Si tu reloj del sistema está mal configurado o estás viajando, la visualización de la hora local refleja esa configuración.
¿Cómo obtengo el timestamp Unix actual en código?
JavaScript: Math.floor(Date.now() / 1000) para segundos, o Date.now() para milisegundos. Python: import time; int(time.time()). Go: time.Now().Unix() para segundos, time.Now().UnixMilli() para milisegundos. PostgreSQL: EXTRACT(EPOCH FROM NOW()). Bash: date +%s.