Português (Brasil)

Ferramentas para desenvolvedores · Conversor de carimbo de data/hora Unix

Um carimbo de data/hora, dois relógios: por que UTC e a hora local diferem em uma época

· Como funciona

carimbos de data/hora horário unix fusos horários

Um único instante conectado a dois relógios com ponteiros diferentes
Ilustração vetorial original ToolAcre

Um valor de época indica um instante, mas a hora do relógio que você vê depende de onde você está. Esta postagem explica a aritmética do deslocamento, por que a data em si pode ser diferente e por que um conversor mostra ambas as leituras.

O cliente diz 9 da manhã, o log diz 16:00 — o mesmo evento, dois relógios e um ticket de suporte que não leva a lugar nenhum

Um caso de suporte pode parar quando uma pessoa relata “nove da manhã” enquanto o log do aplicativo registra 16:00. Nenhum rótulo de relógio identifica um evento até que sua zona ou deslocamento seja conhecido. Se ambas as referências forem resolvidas para a mesma época, a busca por um atraso de processamento de sete horas desperdiçará a investigação sobre uma diferença de exibição.

Comece coletando o carimbo de data/hora bruto e o contexto da zona de cada observador. ToolAcre mostra UTC e a leitura local atual do navegador de uma conversão, portanto a comparação é imediata para a pessoa que mantém o log. Um colega em outro lugar deve comparar o valor ISO compartilhado, e não assumir que a linha local da primeira pessoa se aplica à sua máquina.

Uma época é um instante, não um relógio de parede - a contagem de segundos desde 1970 que não possui zona própria

Uma época é uma distância de 1970-01-01T00:00:00Z em segundos ou milissegundos. Ele não contém cidade, bandeira de horário de verão ou notação de relógio preferencial. O valor 1,700,000,000 identifica portanto um instante; rótulos como terça-feira à noite ou quarta-feira de manhã são projeções feitas após a escolha de como ler aquele instante.

É por isso que armazenar uma “época local” corrigida é um erro de categoria. Adicionar um deslocamento altera a contagem e os pontos em outro momento. Armazene ou transmita o instante original e, em seguida, aplique uma regra de leitura na extremidade onde uma pessoa precisa de um calendário. ToolAcre segue esse formato preservando segundos e milissegundos numéricos ao lado das saídas formatadas.

Como uma compensação é aplicada — somando ou subtraindo horas e minutos, zonas de meia hora e 45 minutos e compensações que mudam durante o ano

Para um deslocamento fixo, a aritmética é direta: UTC+09:00 mostra um relógio nove horas à frente de UTC, enquanto UTC−05:00 mostra um relógio cinco horas atrasado. As frações de hora são tratadas como minutos, portanto, um deslocamento de quarenta e cinco minutos não é representado com segurança pelo arredondamento para uma hora inteira. O sinal pertence à leitura local exibida.

Um deslocamento fixo ainda é apenas uma observação. ToolAcre solicita ao Intl o deslocamento aplicável ao instante escolhido na zona atual do navegador. Não pressupõe que a compensação de hoje se aplique ao longo do ano. Copiar um deslocamento na configuração do aplicativo pode, portanto, parecer correto durante o teste e falhar quando a regra aplicável do ambiente for alterada.

Quando a data também muda — instantes próximos à meia-noite que caem em dias diferentes em UTC e localmente

A aritmética do relógio pode ultrapassar os limites do calendário. Um instante em 00:20 UTC aparece na data anterior com um deslocamento negativo e posteriormente na mesma data com um deslocamento positivo. Um ticket que registra apenas “dia 14” pode, conseqüentemente, referir-se a diferentes partes de um registro UTC, mesmo quando ambos os participantes se lembram de seus próprios calendários com precisão.

Use data, hora e deslocamento completos ao entregar um evento entre equipes. A linha ISO do conversor evita que a data seja separada de UTC, enquanto a linha local fornece um contexto familiar. Se um incidente durar meia-noite, ordene as entradas por época ou UTC em vez de classificar rótulos humanos que foram escritos em várias zonas.

Exemplo resolvido: 1700000000 em UTC, em uma zona UTC+9 e em uma zona UTC−5 — a aritmética escrita e as datas comparadas

O artigo da unidade publicada existente estabelece que 1,700,000,000 segundos é `2023-11-14T22:13:20.000Z`. Sob uma leitura fixa de +09:00, adicione nove horas para obter 2023-11-15 07:13:20; sob −05:00 fixo, subtraia cinco horas para obter 2023-11-14 17:13:20. A data muda apenas no exemplo oriental.

Estas duas leituras de compensação são demonstrações aritméticas, e não afirmações sobre cidades nomeadas naquela data. A linha local ToolAcre deve ter permissão para relatar qualquer deslocamento que o Intl forneça para a zona real do navegador. Compare-o com o valor UTC e anote o deslocamento exibido em vez de forçar qualquer valor ilustrativo no resultado.

Exemplo resolvido: uma época em UTC, depois duas leituras explícitas de deslocamento fixo

Mostrar ambas as leituras remove a subtração mental de uma sessão de depuração. A equipe do servidor pode citar UTC, enquanto a pessoa que reproduz um problema pode reconhecer o relógio local que viu. Como ambas as linhas derivam de uma data, os segundos e milissegundos correspondentes provam que não foram editados de forma independente ou arredondados em eventos separados.

O par é especialmente útil em capturas de tela: inclua a nota da unidade e a linha ISO em vez de cortar para o valor local familiar. Um relógio cortado pode ser reinterpretado após uma viagem ou uma alteração na configuração da zona. Uma época mais ISO permanece estável e a renderização local explica a experiência do usuário sem substituir essa referência estável.

O que isso não cobre - mudanças históricas de compensação e decisões políticas de fuso horário, que residem no banco de dados tz e não na aritmética

A simples adição não pode descrever uma zona regional cujo deslocamento aplicável varia. O conversor delega a formatação local para Intl, mas seu repositório não expõe a tabela de regras subjacente ou decisões históricas. Este artigo, portanto, não lista alterações passadas, não prevê políticas futuras nem promete resultados idênticos de motores que transportam dados diferentes.

Quando um aplicativo precisar agendar “09:00 neste local”, retenha a zona nomeada e use um design de agendamento com reconhecimento de zona. Quando precisar registrar “esta solicitação aconteceu agora”, retenha um instante. Esses são requisitos de dados diferentes. Um `+02:00` fixo pode descrever uma leitura em um instante sem identificar a regra regional que a produziu.

A aritmética de deslocamento fixo não pode reproduzir mudanças nas regras regionais

Pense na época como um alfinete na linha do tempo e nos mostradores do relógio como rótulos colocados ao seu redor. UTC fornece uma etiqueta comum; a formatação local fornece uma forma conveniente. ToolAcre apresenta ambos sem modificar o pin, por isso se espera uma diferença de horas em vez de evidência de tempo perdido.

Para um evento disputado, cole a contagem bruta, indique a unidade explicitamente e compartilhe a saída ISO. Em seguida, anexe leituras locais apenas como anotações. Essa ordem transforma “meu relógio versus o seu” em um mapeamento verificável e evita que alterações nos limites de datas sejam mascaradas como eventos em dias diferentes.