🕐

FAQ de Conversor de timestamp Linux

Q: ¿Qué es una marca de tiempo Unix?

A: Una marca de tiempo Unix (también conocida como hora POSIX u hora de epoch) es el número de segundos transcurridos desde el 1 de enero de 1970, 00:00:00 UTC, excluyendo los segundos intercalares. Es un entero simple que representa el mismo instante en todo el mundo, sin importar la zona horaria.

Q: ¿Cómo convierto una marca de tiempo Unix a una fecha legible?

A: Puedes convertir una marca de tiempo Unix de varias formas:

  • En línea: Usa nuestro Convertidor de marcas de tiempo Unix para una conversión instantánea
  • Terminal de Linux: Ejecuta date -d @1785292800 (en GNU/Linux) o date -r 1785292800 (en macOS)
  • JavaScript: new Date(timestamp * 1000).toISOString()
  • Python: datetime.utcfromtimestamp(1785292800)
  • PHP: date("Y-m-d H:i:s", 1785292800)

Q: ¿Cuál es la diferencia entre marcas de tiempo en segundos y en milisegundos?

A: Una marca de tiempo basada en segundos tiene 10 dígitos (por ejemplo, 1785292800). Una marca de tiempo en milisegundos tiene 13 dígitos (por ejemplo, 1785292800000) porque multiplica el valor en segundos por 1000. Date.now() de JavaScript devuelve milisegundos, mientras que la mayoría de los demás sistemas y APIs usan segundos. Mezclarlas accidentalmente produce fechas extremadamente erróneas: usar milisegundos donde se esperan segundos da como resultado una fecha aproximadamente 56 000 años en el futuro.

Comprueba siempre la resolución de tu fuente de datos antes de convertir. En caso de duda, cuenta los dígitos: 10 dígitos = segundos, 13 dígitos = milisegundos.

Q: ¿Pueden las marcas de tiempo Unix representar fechas anteriores a 1970?

A: Sí. Las fechas anteriores al 1 de enero de 1970 se representan como números negativos. Por ejemplo, la marca de tiempo -3600 corresponde al 31 de diciembre de 1969, 23:00:00 UTC. No todas las herramientas de conversión manejan correctamente las marcas de tiempo negativas, pero nuestro convertidor en línea sí lo hace. Los lenguajes de programación las soportan universalmente.

Q: ¿Qué es el problema del año 2038?

A: El problema del año 2038 (también llamado Y2K38) es un problema de representación del tiempo que afecta a los sistemas que almacenan marcas de tiempo como enteros con signo de 32 bits. El valor máximo es 2147483647, que corresponde al 19 de enero de 2038, a las 03:14:07 UTC. Un segundo después, el valor se desborda a -2147483648, interpretado como el 13 de diciembre de 1901.

La mayoría de los sistemas modernos de 64 bits no se ven afectados, pero los dispositivos integrados, las bases de datos heredadas y algunos sistemas de 32 bits siguen siendo vulnerables. La solución es migrar a representaciones de tiempo de 64 bits, que proporcionan un rango de aproximadamente 292 mil millones de años.

Q: ¿Las marcas de tiempo Unix tienen en cuenta los segundos intercalares?

A: No. Las marcas de tiempo Unix ignoran deliberadamente los segundos intercalares. Cada día se trata como exactamente 86 400 segundos, incluso cuando se añade un segundo intercalar a UTC. Durante la inserción de un segundo intercalar, la marca de tiempo Unix no avanza durante un segundo, saltándose efectivamente el segundo intercalar. Esto significa que las marcas de tiempo Unix divergen del tiempo atómico en una cantidad pequeña (actualmente unos 27 segundos) pero acumulativa.

Q: ¿Cómo manejo las zonas horarias al convertir marcas de tiempo Unix?

A: Una marca de tiempo Unix representa el mismo instante en todas partes. La zona horaria solo importa cuando la muestras como una fecha legible. Almacena siempre las marcas de tiempo en su forma entera cruda y convierte a la hora local solo para mostrarla. Usa nombres de zona horaria IANA como America/New_York en lugar de abreviaturas como EST o PST, ya que las abreviaturas no tienen en cuenta el horario de verano. Nuestro Convertidor de marcas de tiempo Unix muestra resultados en múltiples zonas horarias simultáneamente.

Q: ¿Cuál es la marca de tiempo Unix máxima?

A: El máximo depende del tamaño del entero utilizado para el almacenamiento:

  • Entero con signo de 32 bits: 2147483647 (19 de enero de 2038, 03:14:07 UTC)
  • Entero sin signo de 32 bits: 4294967295 (7 de febrero de 2106, 06:28:15 UTC)
  • Entero con signo de 64 bits: 9223372036854775807 (aproximadamente 292 mil millones de años a partir de ahora)

La mayoría de los sistemas modernos usan enteros de 64 bits, lo que proporciona un rango efectivamente infinito. La práctica común de almacenar marcas de tiempo en columnas de bases de datos o estructuras de datos como un tipo de 64 bits (BIGINT en SQL) es a prueba de futuro.

FAQ de Conversor de timestamp Linux - CoolTool