Qué es una marca de tiempo
Una marca de tiempo es un valor numérico que representa un instante concreto. La más común es la marca de tiempo Unix: los segundos (o milisegundos) transcurridos desde el 1 de enero de 1970 00:00:00 UTC. Por ejemplo, 1720780800 corresponde a 2024-07-12 12:00:00 UTC. Las marcas de tiempo están en todas partes en programación, logs, bases de datos y APIs.
Por qué es necesaria la conversión
- Leer logs: los logs están llenos de marcas de tiempo, ilegibles a simple vista, hay que convertirlos a hora legible
- Depurar APIs: la interfaz devuelve marcas de tiempo, hay que confirmar si son correctas
- Entre zonas horarias: convertir marca de tiempo UTC a hora local para mostrarla
- Base de datos: se almacenan marcas de tiempo, hay que formatearlas al mostrarlas
Formatos de tiempo comunes
Marca de tiempo Unix
- Nivel de segundos: 10 dígitos (p. ej., 1720780800)
- Nivel de milisegundos: 13 dígitos (p. ej., 1720780800000, común en JS/Java)
ISO 8601
Formato como 2024-07-12T12:00:00Z, estándar internacional, común en APIs. La Z al final indica UTC.
Hora local
Como 2024-07-12 20:00:00, con desfuso horario, varía según la región.
Herramienta de conversión de marca de tiempo de DocsAll
Convierte con un clic con la herramienta de conversión de marca de tiempo:
- Abrir la herramienta de marca de tiempo
- Introducir marca de tiempo → muestra automáticamente la hora legible; o introducir hora → obtener marca de tiempo
- Admite conmutación segundos/milisegundos
- Copiar el resultado
Ejemplos de conversión
| Marca de tiempo (segundos) | Hora UTC | Hora de Pekín (UTC+8) |
|---|---|---|
| 0 | 1970-01-01 00:00 | 1970-01-01 08:00 |
| 1720780800 | 2024-07-12 12:00 | 2024-07-12 20:00 |
Trampas comunes
Segundos vs milisegundos
Date.now() de JS devuelve milisegundos (13 dígitos), time.time() de Python devuelve segundos (10 dígitos). Mezclarlos produce una diferencia de 1000x, confirma la unidad antes de convertir.
Zona horaria
La misma marca de tiempo se muestra distinta en distintas zonas horarias. La hora de Pekín es 8 horas anterior a UTC: 1720780800 es mediodía en UTC y 8 de la tarde en Pekín. Una práctica común es almacenar UTC en el backend y mostrar según la zona horaria del usuario en el frontend.
Problema del año 2038
La marca de tiempo Unix de 32 bits se desbordará el 2038-01-19. Los sistemas modernos usan 64 bits y no se ven afectados, pero los sistemas embebidos antiguos requieren atención.
Marcas de tiempo negativas
Los tiempos anteriores a 1970 se representan con números negativos, algunas herramientas no las soportan; ten cuidado al convertir fechas anteriores a 1969.
Consejos prácticos
- El backend debe almacenar de forma uniforme marcas de tiempo UTC, el frontend convierte a la zona horaria local según sea necesario
- Al analizar logs, usa una herramienta para convertir marcas de tiempo a hora legible en lote, es 100 veces más rápido que el cálculo mental
- Al depurar interfaces, confirma primero si lo que se devuelve son segundos o milisegundos
La conversión de marcas de tiempo es una operación de alta frecuencia en el desarrollo diario. Guarda la herramienta en marcadores y ábrela cuando la necesites.