Ferramentas para desenvolvedores · Conversor de carimbo de data/hora Unix
Como o navegador converte uma época para a hora local com Data e Internacional
· Como funciona
carimbos de data/hora javascript APIs do navegador
Um conversor de navegador não possui relógio de servidor ou banco de dados de fuso horário próprio; ele depende do objeto Date e do Intl API apoiado pelo seu sistema operacional. Esta postagem explica esse pipeline e seus limites.
De onde o navegador obtém 'local'? — a mesma época mostrada de forma diferente em um laptop e um telefone na mesma sala
Dois dispositivos lado a lado podem renderizar uma época de maneira diferente quando suas zonas locais configuradas forem diferentes. O número inteiro não muda entre o laptop e o telefone; cada navegador constrói o mesmo instante e fornece campos de calendário locais para seu próprio ambiente. “Local”, portanto, descreve o leitor, não uma propriedade transportada dentro da época.
ToolAcre torna essa dependência visível rotulando a linha local com `Intl.DateTimeFormat().resolvedOptions().timeZone`. Uma captura de tela que indica uma hora do relógio e um log do servidor que indica outra podem ser leituras fiéis. Compare primeiro as linhas UTC; a saída UTC correspondente mostra que a apresentação, e não o instante subjacente, é diferente.
A data leva milissegundos - o contrato do construtor, por que os segundos devem ser multiplicados por mil e o intervalo que a data pode representar
JavaScript `Date` recebe milissegundos da época. O `fromEpoch` de ToolAcre multiplica uma entrada de segundos por 1,000 e deixa uma entrada de milissegundos inalterada antes de construir o objeto. Essa conversão é explícita porque passar 1,717,243,200 diretamente para `new Date` significaria cerca de vinte dias após 1970, e não 2024 de junho.
A implementação rejeita um número não finito e qualquer valor interpretado além de ±8.64×10¹⁵ milissegundos antes da formatação. Esse limite vem do intervalo de datas nomeado na fonte, não de um banco de dados ou do relógio do sistema operacional. Alterar o seletor pode mover um valor além do limite, portanto, um erro também informa qual unidade foi aplicada.
Acessadores UTC versus acessadores locais — getUTCHours e getHours e como o mecanismo aplica o deslocamento
ToolAcre não extrai campos com `getUTCHours` e `getHours`; o texto do acessador do esboço é mais específico do que a implementação. Ele pede a `Intl.DateTimeFormat` para formatar a data uma vez com `timeZone: "UTC"` e uma vez sem substituição de zona. Ambas as chamadas recebem o mesmo valor de milissegundos, portanto nenhuma delas pode mover o evento em si.
Essa distinção é importante durante a depuração. Se as linhas de segundos e milissegundos concordarem com o produtor, mas o rótulo local surpreender você, inspecione a zona do navegador em vez de adicionar horas à época. A aritmética de deslocamento manual criaria um instante diferente e então deixaria o formatador aplicar novamente as regras locais, produzindo o clássico erro de ajuste duplo.
UTC e a formatação local solicitam ao mecanismo duas leituras de uma data
O conversor pode provar que solicita `resolvedOptions().timeZone` ao navegador; não pode provar se um mecanismo específico obteve todas as regras de fuso horário do sistema operacional, dos dados agrupados ou de outra camada da plataforma. A fonte trata deliberadamente esse maquinário como uma responsabilidade do motor e recorre à frase “hora local” se a consulta de zona falhar.
Este limite de evidência é útil. Uma zona nomeada no resultado identifica a escolha atual do navegador, mas não é um relatório de versão para um banco de dados de fuso horário. Se dois ambientes discordarem em uma data antiga, registre o navegador, o sistema operacional e a zona exibida. O conversor fornece a observação; ele não diagnostica o pacote de dados por trás do Intl.
O navegador relata uma zona local, enquanto sua fonte de regra permanece um detalhe de implementação
Para a linha ISO, `toISOString()` fornece uma string UTC com um Z à direita e três dígitos fracionários. As linhas locais e UTC legíveis por humanos usam um formatador inglês da Grã-Bretanha com ano numérico, mês abreviado, dia de dois dígitos e um relógio 24 horas. O formatador também solicita `shortOffset`, tornando o deslocamento aplicável parte de cada linha renderizada.
Essas escolhas explicam por que copiar `Date.toString()` de um console não é uma evidência equivalente. Sua prosa exata depende da localidade e está fora do contrato de saída desta ferramenta. ToolAcre corrige suas opções de exibição, mas ainda permite que a zona local real varie. Copie o valor ISO quando outro sistema precisar de uma comparação estável legível por máquina.
Exemplo resolvido: uma época, três saídas - uma string UTC ISO, uma hora formatada localmente e o deslocamento em minutos de getTimezoneOffset
Digite 1,717,243,200 e escolha segundos. A multiplicação produz 1,717,243,200,000 milissegundos, que os testes estabelecem como `2024-06-01T12:00:00.000Z`. A linha UTC formata esse instante em UTC; a linha local formata a data idêntica na zona do navegador e nomeia essa zona. As linhas de segundos e milissegundos preservam ambas as formas numéricas.
O relógio local preciso e o deslocamento devem ser lidos no dispositivo que executa o exemplo; publicar um aqui seria fingir que todos os leitores têm a mesma zona. É por isso que esta verificação trabalhada usa a asserção ISO como resultado fixo e trata a saída local como um valor observado. Se ISO for diferente, revisite a unidade selecionada antes de investigar as configurações de localização.
Exemplo resolvido: uma época, as três saídas ToolAcre realmente expõem
Esta rota não oferece um seletor para uma terceira zona arbitrária. `formatInZone` pode aceitar uma zona internamente, mas o painel a chama apenas para UTC e para o padrão do navegador. Um artigo afirmando que os usuários podem escolher Tóquio, Nairóbi ou Toronto descreveria uma interface que não é fornecida, embora o Intl possa suportar tal formatação em outros lugares.
Ele também não expõe a seleção de calendário, seleção de localidade ou revisão de banco de dados de fuso horário. Para conversão entre escritórios, mantenha a época como âncora e use uma ferramenta cuja interface documentada nomeie a zona de destino. Aqui a promessa mais restrita é valiosa: UTC universal ao lado do ambiente local, sem nenhum servidor oculto decidindo o que significa local.
Conclusão: seu navegador é o relógio e o atlas - e como o conversor de carimbo de data / hora Unix o usa para mostrar UTC e local lado a lado sem um servidor
O navegador atua tanto como mecanismo aritmético quanto como ambiente de apresentação. ToolAcre resolve a unidade, cria uma data, solicita um valor canônico ISO e formata UTC e leituras locais lado a lado. Nenhum serviço de conversão remota é necessário para essas etapas, e a unidade exibida mantém a decisão do fator 1,000 disponível para revisão.
Quando as saídas discordam entre dispositivos, compare a linha ISO, a nota da unidade e a zona local nomeada nessa ordem. Essas três observações separam instante, escala e apresentação. Tratar o relógio local como a fonte da verdade resume todas as três questões em uma e faz com que uma conversão correta pareça errada sempre que o observador muda de zona.