Ferramentas para desenvolvedores · Conversor de carimbo de data/hora Unix
UTC, GMT e TAI: qual deles seu carimbo de data/hora está realmente contando
· Fundo
carimbos de data/hora horário unix fusos horários
GMT, UTC e TAI são frequentemente tratados como sinônimos, mas são três coisas diferentes com histórias diferentes. Este post explica cada um deles e quais deles os conversores de horário e uso diário do Unix realmente seguem.
Três nomes em um servidor — GMT no cabeçalho Date, UTC nos logs e TAI em um artigo de pesquisa, todos no mesmo segundo
Um servidor pode mostrar “GMT” em um protocolo, “UTC” em logs e outra escala de tempo em dados científicos. Etiquetas de relógio semelhantes não garantem intercambialidade. A primeira tarefa é identificar o contrato por trás de cada campo em vez de renomear tudo UTC em uma camada de apresentação.
O contrato de ToolAcre é explícito: segundos ou milissegundos Unix tornam-se uma string ISO 8601 UTC, uma linha UTC legível e uma linha local do navegador. Não possui seletor de escala. Qualquer contagem não-Unix deve ser transformada usando sua própria definição oficial antes que esta rota seja relevante.
Um inventário útil registra escala e serialização ao lado de cada campo. Rótulos semelhantes não devem apagar a proveniência, especialmente quando os dados cruzam sistemas científicos e de aplicação.
Horário de Greenwich - hora solar média em um meridiano, sua história como referência mundial e por que agora é um fuso horário em vez de um padrão
O esboço oferecia uma história do horário de Greenwich e do uso legal moderno. Esses fatos não estão presentes na configuração, fonte ou testes do conversor. Este artigo, portanto, não transforma um repositório de código em uma citação histórica por inferência.
Operacionalmente, se uma entrada disser GMT, inspecione o protocolo de definição. Um rótulo de relógio que parece equivalente para datas de aplicação comuns ainda pode conter requisitos gramaticais ou políticos específicos. ToolAcre gera rótulos UTC e não deve ser apresentado como um analisador ou formatador GMT.
Se a interoperabilidade depender do termo, vincule a especificação de controle na revisão do código. Uma etiqueta de exibição nunca deve substituir silenciosamente um requisito de formato de fio.
GMT histórico e status legal estão fora das evidências do repositório
A linha UTC é gerada por `Intl.DateTimeFormat` com `timeZone: "UTC"`; a linha ISO vem de `toISOString()`. Essas chamadas comprovam como esta interface rotula sua leitura universal. Eles não documentam quando UTC foi adotado ou o mecanismo institucional por trás dele.
Para depuração, o rótulo é suficiente para estabelecer uma referência compartilhada independente da zona local atual. Compare strings ISO ou valores de época entre sistemas. Se uma fonte usar outra escala, primeiro prove a relação, em vez de assumir que uma data familiar significa contagem idêntica.
A saída canônica UTC é especialmente útil para comparar ambientes porque remove a seleção de zona local. No entanto, não converte uma entrada de uma escala de tempo não declarada.
O conversor rotula UTC mas não documenta o histórico da definição de UTC
O Tempo Atômico Internacional não está representado no código, configuração ou testes. Nenhum deslocamento atual, lacuna histórica ou algoritmo de conversão aparece aqui. Fornecer tal constante da memória seria exatamente o tipo de reivindicação de tempo sutil que a tarefa proíbe.
Preserve um valor rotulado como TAI como TAI até que uma biblioteca ou fonte autorizada execute a conversão para sua data. Colá-lo diretamente como segundos Unix aplica a origem ou escala errada silenciosamente e ainda pode produzir uma string ISO polida. Legibilidade não é validação.
Uma conversão externa deve incluir o nome da escala nos nomes das variáveis e dos tipos. Apagar esse rótulo antes da aritmética torna impossível auditar um resultado ISO plausível posterior.
TAI não está implementado, portanto, nenhuma lacuna ou constante de conversão é declarada
O modelo Unix testado avança do valor de época 1,483,228,799 em `2016-12-31T23:59:59Z` para 1,483,228,800 à meia-noite. Não possui entrada distinta para `23:59:60`. Esse é o significado concreto do comportamento estilo POSIX nesta implementação.
É razoável dizer que o conversor mapeia as contagens do Unix para a produção civil rotulada como UTC sob essa regra. Seria enganoso chamar o número inteiro de uma contagem exata de segundos atômicos em cada salto histórico. A ferramenta faz uma data de software, não uma medição em escala de tempo de laboratório.
A distinção é sutil, mas prática: os cálculos de sequência herdam a convenção Unix, enquanto a exibição civil herda a formatação Date e Intl. Nenhum dos caminhos expõe metadados de tempo atômico.
O modelo Unix testado mapeia segundos estilo POSIX em rótulos UTC sem um valor de segundo bissexto
Os exemplos da pasta de trabalho de HTTP e horário legal britânico exigem protocolo externo e fontes legais. Eles são omitidos. Ao implementar um cabeçalho ou registro regulamentado, siga a especificação real em vez de escolher o texto UTC ou GMT com base na equivalência coloquial.
Dentro deste módulo, `GMT` pode aparecer como parte da renderização de deslocamento curto do Intl para deslocamento zero, mas isso é saída do formatador, não uma promessa de gerar uma data de protocolo. Mantenha a exibição da IU separada da serialização em formato de fio e da terminologia legal.
Um formatador que retorna um rótulo de deslocamento zero não é uma validação de protocolo suficiente. Teste o cabeçalho serializado completo ou o registro regulamentado com seu analisador e acessórios dedicados.
O protocolo e os usos legais de GMT exigem fontes externas e são omitidos
GPS as escalas de hora e data astronômica estão fora dos modos aceitos. A IU oferece apenas segundos, milissegundos ou detecção automática, e ambas as unidades suportadas assumem a época Unix. Não há nenhuma caixa de seleção que altere a origem ou a convenção de salto.
Um número de outra balança deve levar um rótulo durante a ingestão e armazenamento. Converta com um método de origem específico e mantenha o original. Somente o valor Unix derivado pertence a este painel; caso contrário, um resultado plausível pode ocultar uma incompatibilidade fundamental.
Rejeitar uma escala não suportada é mais seguro do que oferecer uma constante adivinhada. As compensações na escala de tempo podem ser sensíveis à data, e a falsa precisão aqui pode reordenar as observações científicas.
GPS e escalas astronômicas não são modos aceitos
Diga UTC ao se referir à linha universal de ToolAcre porque é isso que a fonte solicita e a UI rotula. Diga segundos ou milissegundos Unix para a entrada numérica. Evite declarações amplas que reduzam UTC, GMT e tempo atômico em sinônimos.
A precisão na nomenclatura é uma ferramenta de depuração. Identifica quais transformações são necessárias e quais reivindicações permanecem não verificadas. Este conversor fornece forte evidência para um caminho - contagem de Unix para exibição UTC/local - e intencionalmente não oferece nenhum para escalas não relacionadas.
Ao escrever a documentação, anexe cada termo a um campo ou formatador concreto. Vague afirma que todos os três “significam o mesmo tempo” ocultam as responsabilidades exatas de conversão.