Español

Herramientas de desarrollo · Convertidor de marca de tiempo Unix

Una marca de tiempo, dos relojes: por qué UTC y la hora local difieren en una época

· Cómo funciona

marcas de tiempo tiempo Unix zonas horarias

Un único instante conectado a dos relojes con manecillas diferentes
Ilustración de vector original de ToolAcre

Un valor de época nombra un instante, pero la hora del reloj de pared que ves depende de dónde te encuentres. Esta publicación explica la aritmética de compensación, por qué la fecha en sí puede diferir y por qué un convertidor muestra ambas lecturas.

El cliente dice 9 a.m., el registro dice 16:00: el mismo evento, dos relojes y un ticket de soporte que no llega a ninguna parte

Un caso de soporte puede estancarse cuando una persona informa "nueve de la mañana" mientras el registro de la aplicación registra 16:00. Ninguna etiqueta de reloj identifica un evento hasta que se conozca su zona o desplazamiento. Si ambas referencias corresponden a la misma época, la búsqueda de un retraso de procesamiento de siete horas desperdicia la investigación por una diferencia de visualización.

Comience recopilando la marca de tiempo sin procesar y el contexto de zona de cada observador. ToolAcre muestra UTC y la lectura local actual del navegador de una conversión, por lo que la comparación es inmediata para la persona que posee el registro. Un colega en otro lugar debería comparar el valor ISO compartido, no asumir que la fila local de la primera persona se aplica a su máquina.

Una época es un instante, no el tiempo de un reloj de pared: la cuenta de segundos desde 1970 que no tiene zona propia

Una época es una distancia de 1970-01-01T00:00:00Z en segundos o milisegundos. No contiene ninguna ciudad, bandera de horario de verano ni notación de reloj preferida. Por tanto, el valor 1,700,000,000 identifica un instante; etiquetas como martes por la tarde o miércoles por la mañana son proyecciones realizadas tras elegir cómo leer ese instante.

Esta es la razón por la cual almacenar una “época local” corregida es un error de categoría. Agregar un desplazamiento cambia el conteo y los puntos en otro momento. Almacene o transmita el instante original, luego aplique una regla de lectura en el borde donde una persona necesita un calendario. ToolAcre sigue esa forma al preservar segundos y milisegundos numéricos junto a las salidas formateadas.

Cómo se aplica una compensación: sumar o restar horas y minutos, zonas de media hora y 45 minutos, y compensaciones que cambian durante el año

Para un desplazamiento fijo, la aritmética es sencilla: UTC+09:00 muestra un reloj nueve horas por delante de UTC, mientras que UTC−05:00 muestra uno de cinco horas de retraso. Las fracciones de una hora se manejan como minutos, por lo que un desplazamiento de cuarenta y cinco minutos no se representa de manera segura redondeando a una hora entera. El letrero pertenece a la lectura local mostrada.

Un desplazamiento fijo sigue siendo solo una observación. ToolAcre solicita a Intl el desplazamiento aplicable al instante elegido en la zona actual del navegador. No se supone que la compensación de hoy se aplique durante todo el año. Por lo tanto, copiar un desplazamiento en la configuración de la aplicación puede parecer correcto durante las pruebas y fallar cuando cambia la regla aplicable del entorno.

Cuando la fecha también cambia: instantes cercanos a la medianoche que caen en diferentes días calendario en UTC y localmente

La aritmética del reloj puede cruzar un límite de calendario. Un instante en 00:20 UTC aparece en la fecha anterior con un desplazamiento negativo y posteriormente la misma fecha con un desplazamiento positivo. En consecuencia, un boleto que registra solo “el día 14” puede referirse a diferentes porciones de un registro UTC, incluso cuando ambos participantes recuerdan con precisión sus propios calendarios.

Utilice la fecha, la hora y el desplazamiento completos al entregar un evento entre equipos. La fila ISO del convertidor evita que la fecha se separe de UTC, mientras que la fila local proporciona un contexto familiar. Si un incidente abarca la medianoche, ordene las entradas por época o UTC en lugar de ordenar etiquetas humanas que se escribieron en varias zonas.

Ejemplo resuelto: 1700000000 en UTC, en una zona UTC+9 y en una zona UTC−5 — la aritmética escrita y las fechas comparadas

El artículo de unidad publicado existente establece que 1,700,000,000 segundos son `2023-11-14T22:13:20.000Z`. Bajo una lectura fija +09:00, agregue nueve horas para obtener 2023-11-15 07:13:20; bajo fijo −05:00, reste cinco horas para obtener 2023-11-14 17:13:20. La fecha cambia sólo en el ejemplo oriental.

Estas dos lecturas compensadas son demostraciones aritméticas, no afirmaciones sobre ciudades nombradas en esa fecha. Se debe permitir que la fila local de ToolAcre informe cualquier compensación que Intl proporcione para la zona real del navegador. Compárelo con el valor UTC y escriba el desplazamiento mostrado en lugar de forzar cualquiera de los valores ilustrativos en el resultado.

Ejemplo resuelto: una época en UTC, luego dos lecturas explícitas de compensación fija

Mostrar ambas lecturas elimina la resta mental de una sesión de depuración. El equipo del servidor puede indicar UTC, mientras que la persona que reproduce un problema puede reconocer el reloj local que vio. Debido a que ambas filas derivan de una fecha, los segundos y milisegundos coincidentes demuestran que no se han editado ni redondeado de forma independiente en eventos separados.

El par es especialmente útil en capturas de pantalla: incluya la nota de unidad y la fila ISO en lugar de recortar al valor local familiar. Un reloj recortado se puede reinterpretar después de un viaje o un cambio de configuración de zona. Una época más ISO permanece estable y la representación local explica la experiencia del usuario sin reemplazar esa referencia estable.

Lo que esto no cubre: cambios de compensación históricos y decisiones políticas de zona horaria, que residen en la base de datos tz en lugar de en aritmética.

Una simple suma no puede describir una zona regional cuya compensación aplicable varía. El conversor delega el formato local a Intl, pero su repositorio no expone la tabla de reglas subyacente ni las decisiones históricas. Por lo tanto, este artículo no enumera cambios pasados, no predice políticas futuras ni promete resultados idénticos de motores que contienen datos diferentes.

Cuando una aplicación debe programar “09:00 en este lugar”, retenga la zona nombrada y utilice un diseño de programación consciente de la zona. Cuando deba registrar “esta solicitud ocurrió ahora”, retenga un instante. Esos son requisitos de datos diferentes. Un `+02:00` fijo puede describir una lectura en un instante sin identificar la regla regional que la produjo.

La aritmética de compensación fija no puede reproducir las reglas regionales cambiantes

Piense en la época como el pin que atraviesa la línea de tiempo y las esferas del reloj como etiquetas colocadas a su alrededor. UTC proporciona una etiqueta común; el formato local proporciona uno conveniente. ToolAcre presenta ambos sin modificar el pin, por lo que se espera una diferencia de horas más que evidencia de tiempo perdido.

Para un evento en disputa, pegue el recuento sin procesar, indique la unidad explícitamente y comparta la salida ISO. Luego adjunte lecturas locales solo como anotaciones. Ese orden convierte “mi reloj versus el tuyo” en un mapeo verificable y evita que los cambios en los límites de fechas se hagan pasar por eventos en días diferentes.