Convertidor de Timestamp Unix a Fecha: Soporte para Formatos de 12/24 Horas
Convierte timestamps Unix a fechas y horas legibles por humanos. Elige entre formatos de 12 horas y 24 horas con esta herramienta de conversión simple y fácil de usar.
Conversor de marca de tiempo Unix
El timestamp Unix es el número de segundos desde el 1 de enero de 1970 (UTC)
Fecha y Hora Convertidas
¿Qué es un Timestamp Unix?
Un timestamp Unix es el número de segundos que han transcurrido desde el 1 de enero de 1970 (medianoche UTC/GMT), sin contar los segundos intercalares. Se utiliza ampliamente en sistemas Unix y lenguajes de programación para cálculos de fecha y hora.
Documentación
Convertidor de marca de tiempo Unix a fecha
Una marca de tiempo Unix es un número que representa un momento específico. Cuenta los segundos completos transcurridos desde la medianoche UTC del 1 de enero de 1970, un momento denominado época Unix. Esta herramienta convierte una marca de tiempo Unix en una fecha del calendario y una hora, mostradas en formato de 24 horas o de 12 horas.
Cómo convertir una marca de tiempo Unix en una fecha
La fórmula básica es sencilla:
fecha = época Unix (1970-01-01, 00:00:00 UTC) + marca de tiempo (en segundos)
Para convertir un número de segundos sin procesar en una fecha, se suma esa cantidad de segundos a 1 de enero de 1970. Después, el resultado debe dividirse en año, mes, día, hora, minuto y segundo. Esa división es la parte difícil, porque debe tener en cuenta los años bisiestos (que añaden un día a febrero) y que los meses tienen distinta duración. La mayoría de los lenguajes de programación tienen una función de fecha integrada que lo hace automáticamente, por lo que nadie tiene que calcularlo paso a paso.
Ejemplo resuelto
Tomemos la marca de tiempo 1609459200.
- Dividir entre el número de segundos de un día: 1.609.459.200 ÷ 86.400 = 18.628 días.
- Contar 18.628 días hacia adelante desde 1 de enero de 1970, teniendo en cuenta los años bisiestos.
- El recuento llega al 1 de enero de 2021.
Por tanto, 1609459200 se convierte en viernes, 1 de enero de 2021, 00:00:00 UTC. El día de la semana, viernes, se obtiene del mismo recuento de días.
El convertidor muestra el resultado en la zona horaria que indica el navegador, no en UTC. Un lector en Nueva York ve la misma marca de tiempo como jueves, 31 de diciembre de 2020, 19:00:00, porque ese día Nueva York estaba cinco horas por detrás de UTC.
Una marca de tiempo también puede ser negativa, lo que representa una fecha anterior a 1970. Por ejemplo, -86400 corresponde exactamente a un día antes de la época: 31 de diciembre de 1969, 00:00:00 UTC.
Precisión de las marcas de tiempo: segundos, milisegundos y microsegundos
No todos los sistemas miden el tiempo en segundos. Este convertidor observa cuántos dígitos tiene una marca de tiempo y deduce su precisión:
| Dígitos | Precisión | Ejemplo |
|---|---|---|
| 10 | Segundos | 1609459200 |
| 13 | Milisegundos | 1609459200000 |
| 16 | Microsegundos | 1609459200000000 |
Una marca de tiempo negativa tiene un carácter adicional correspondiente al signo menos, por lo que -1609459200 (11 caracteres, 10 dígitos) se sigue interpretando como segundos. Cualquier otra cantidad de dígitos se trata como segundos simples. Los valores en milisegundos y microsegundos se dividen entre 1.000 o 1.000.000 antes de aplicar la fórmula de los segundos anterior.
Formato horario de 12 horas y de 24 horas
El convertidor ofrece dos formas de mostrar la hora del día.
- Formato de 24 horas: cuenta las horas de 0 a 23, sin indicar a. m. ni p. m. A veces los programadores lo llaman horario militar. Las 3:00 de la tarde se escriben 15:00.
- Formato de 12 horas: cuenta las horas de 1 a 12 y añade a. m. para el periodo comprendido entre la medianoche y el mediodía, y p. m. para el comprendido entre el mediodía y la medianoche. 15:00 en formato de 24 horas se convierte en 3:00 p. m.
El formato de 24 horas es el estándar en la mayor parte de Europa, América Latina y Asia, así como en contextos científicos, militares y médicos de todo el mundo. El formato de 12 horas sigue siendo habitual en el uso cotidiano en Estados Unidos, Canadá y algunos otros países anglófonos.
Intervalo de fechas admitido
Este convertidor acepta cualquier marca de tiempo desde -62135596800 hasta 253402300799. Esto abarca todas las fechas desde 1 de enero del año 1 hasta 31 de diciembre de 9999, en el calendario gregoriano proléptico (el calendario moderno proyectado hacia atrás, antes de su introducción en 1582). Las marcas de tiempo fuera de ese intervalo se rechazan con un error de rango.
El problema del año 2038
Muchos sistemas informáticos antiguos almacenan una marca de tiempo Unix como un entero con signo de 32 bits, que solo puede contar hasta 2.147.483.647. Esa cantidad de segundos después de la época cae en 19 de enero de 2038, a las 03:14:07 UTC. Después de ese instante, un sistema de 32 bits sin actualizar vuelve a empezar desde el principio con un número negativo e interpreta que la fecha está en 1901 en lugar de 2038. Esto se conoce como el problema del año 2038. No afecta a todos los sistemas: el software moderno que almacena las marcas de tiempo como números de 64 bits, o como números ordinarios, como hace JavaScript, puede representar fechas miles de años posteriores a 2038 sin desbordamiento.
Usos habituales de las marcas de tiempo Unix
Las marcas de tiempo Unix aparecen en todo el ámbito de la informática porque son compactas y fáciles de comparar u ordenar:
- Las filas de las bases de datos las utilizan para registrar cuándo se creó o modificó por última vez un registro.
- Los servidores web las utilizan en encabezados HTTP y cookies para controlar el almacenamiento en caché y la caducidad.
- Los archivos de registro asignan una a cada evento, de modo que las entradas puedan ordenarse cronológicamente.
- Git y otros sistemas de control de versiones registran así las horas de las confirmaciones.
- Las API web las utilizan para indicar cuándo se generaron o actualizaron los datos por última vez.
Preguntas frecuentes
¿Qué es la época Unix? La época Unix es la medianoche UTC del 1 de enero de 1970. Es el punto cero a partir del cual cuentan todas las marcas de tiempo Unix.
¿Una marca de tiempo Unix incluye los segundos intercalares? No. El tiempo Unix cuenta exactamente 86.400 segundos por día e ignora los segundos intercalares que se añaden ocasionalmente a UTC, por lo que se desajusta ligeramente de la hora astronómica.
¿Puede ser negativa una marca de tiempo Unix? Sí. Un valor negativo representa una fecha anterior a 1 de enero de 1970.
¿Por qué mi marca de tiempo tiene 13 dígitos en lugar de 10?
Una marca de tiempo de 13 dígitos se mide en milisegundos, no en segundos. El método Date.now() de JavaScript y muchas API web devuelven marcas de tiempo en milisegundos, por lo que los valores de 13 dígitos son habituales en el desarrollo web.
¿Es una marca de tiempo Unix la misma en todas las zonas horarias? El número en sí no está vinculado a ninguna zona horaria. Siempre cuenta los segundos transcurridos desde la época en UTC. Convertirlo en una fecha y hora locales implica sumar el desfase de esa zona, por lo que el resultado de este convertidor sigue la zona horaria del dispositivo en el que se ejecuta.
¿Cuál es la fecha más avanzada que puede procesar este convertidor? 31 de diciembre de 9999, a las 23:59:59 UTC, que corresponde a la marca de tiempo 253402300799. La más antigua es 1 de enero del año 1, a las 00:00:00 UTC, que corresponde a la marca de tiempo -62135596800.