Ferramentas para desenvolvedores · Conversor de carimbo de data/hora Unix
O que significa Z: UTC, compensações e designadores em carimbos de data e hora ISO 8601
· Como funciona
carimbos de data/hora iso-8601 fusos horários
Conversores e APIs imprimem instantes como strings ISO 8601, e o Z final ou deslocamento é a parte que as pessoas ignoram. Esta postagem explica o formato peça por peça para que você possa ler UTC e a saída local corretamente.
Duas strings, um instante — 10:00:00Z e 12:00:00+02:00 lado a lado, e o leitor que pensa que estão separados por duas horas
`2025-02-03T10:00:00Z` e `2025-02-03T12:00:00+02:00` nomeiam um instante. A segunda sequência mostra um relógio de parede com duas horas de antecedência e fornece o deslocamento necessário para subtrair essas horas. Ler apenas o campo horário cria uma lacuna fictícia entre eventos simultâneos.
ToolAcre passa ambas as strings para Date e retorna segundos de época, milissegundos de época e uma string canônica UTC ISO. Resultados numéricos iguais são a comparação decisiva. Uma alteração no mostrador do relógio não implica alteração no tempo decorrido quando um designador no final contabiliza a diferença.
O procedimento de comparação seguro é normalizar cada string para a época em milissegundos primeiro. Se esses números inteiros corresponderem, a diferença aparente do relógio será uma representação e não o tempo decorrido.
A anatomia de uma data-hora ISO 8601 - data, o separador T, hora, segundos fracionários e o designador de zona
O valor ISO gerado pela ferramenta tem uma data de calendário, `T`, campos hora-minuto-segundo, uma fração de milissegundos de três dígitos e `Z` final. Esta forma exata vem de `toISOString()`. O tratamento de entrada é mais amplo porque Date analisa a string fornecida, mas a mensagem de erro recomenda um valor explícito como `2024-03-01T09:30:00Z`.
Os separadores tornam as peças legíveis; o designador do terminal determina o instante. As frações refinam a posição em um segundo sem alterar a zona. Ao comparar a saída API, mantenha o designador final anexado. Truncar uma captura de tela antes de remover as informações necessárias para mapear o relógio para UTC.
Z para Zulu - por que Z significa UTC, sua origem nos fusos horários militares e de aviação e por que não é o mesmo que nenhum designador
Dentro desta implementação, `Z` é detectado como uma zona explícita e `toISOString()` a utiliza para UTC. A conta de origem militar da pasta de trabalho não está documentada no repositório, portanto este artigo não a repete como histórico de origem. O fato operativo é mais restrito e testável: um Z à direita impede a suposição da hora local.
Nenhum designador não é outra grafia de Z. ToolAcre define `assumedLocal` para uma data e hora sem Z ou um deslocamento numérico e, em seguida, informa ao usuário qual zona do navegador forneceu a interpretação. Substituir um sufixo ausente por Z altera o instante pretendido sempre que o relógio original fosse considerado local.
Neste conversor, Z marca o formato UTC; seu histórico de nomenclatura está fora da evidência do repositório
Um sufixo como `+02:00` registra a diferença entre o relógio escrito e UTC naquele instante. Não identifica uma cidade. Muitas regiões podem comcomcompartilhar um deslocamento e uma região pode usar outro deslocamento em outra data. O barbante preserva a leitura, não as regras políticas que a produziram.
Essa limitação é importante em programações recorrentes. Um API pode relatar fielmente um instante passado com `+02:00`, mas o sufixo sozinho não pode calcular a reunião 09:00 do próximo inverno. A conversão de época precisa apenas do deslocamento fornecido; o agendamento futuro do tempo de parede precisa de uma zona nomeada e de uma lógica com reconhecimento de regras fora deste painel.
Exemplo resolvido: uma época, duas leituras - o valor UTC e o valor local que um conversor mostra e confirmando que nomeiam o mesmo instante
Use a época 1,738,577,600 segundos para a verificação deste artigo. O conversor renderiza `2025-02-03T10:00:00.000Z`. Uma sequência de origem de `2025-02-03T12:00:00+02:00` é convertida de volta para a mesma contagem porque sua leitura de parede de duas horas depois é balanceada pelo deslocamento positivo de duas horas.
A linha local do navegador pode exibir uma terceira hora do relógio. Isso não cria um terceiro evento; é outra passagem de formatação em 1,738,577,600,000 milissegundos. Verifique a identidade com segundos ou ISO e use cada relógio rotulado apenas para o público cuja zona ele representa.
Essa igualdade também pode se tornar um elemento de regressão: analise ambas as strings de origem e afirme um valor de época. Esse teste protege a aritmética de deslocamento sem fixar a prosa de exibição dependente do local.
O designador ausente - um 2024-05-01T10:00:00 simples é ambíguo e como diferentes idiomas o interpretam
O caso do designador ausente precisa de um refinamento. Uma data simples como `2025-02-03` é lida como UTC sob a regra ECMAScript implementada e testada aqui. Uma data e hora simples, como `2025-02-03T10:00:00`, é lida como local e sinalizada. Chamar ambos de simplesmente “ambíguos” contradiria o código.
A forma prática e segura para um instante de intercâmbio ainda inclui Z ou um deslocamento. Uma data e hora local pode ser intencional quando inserida por meio do controle `datetime-local` do painel, mas copie a string ISO resultante antes de compartilhá-la. Essa conversão registra qual é o instante do ambiente atual derivado do relógio de parede.
Um designador ausente nem sempre é ambíguo: esta implementação distingue datas de datas e horas
ISO 8601 cobre mais notação do que este conversor demonstra, mas o repositório não fornece analisadores ou testes para intervalos, durações ou datas semanais. A aceitação da data pode variar de acordo com a plataforma para strings fora de seus exemplos documentados confiáveis. Este artigo, portanto, evita apresentar o painel como um validador gramatical ISO geral.
Se um contrato API permitir um formulário de data especializado, valide-o com o analisador desse API. O caminho de data a época de ToolAcre é adequado para datas e horas explícitas e o formato do seletor local que ele emite. Uma análise de data bem-sucedida prova que este navegador aceitou uma string, e não que todo consumidor em conformidade com os padrões deva aceitá-la.
Durações, intervalos e datas semanais estão fora da entrada aceita demonstrada aqui
Leia um carimbo de data/hora até seu sufixo antes de comparar os campos do relógio. Z ancora o relógio escrito em UTC; um deslocamento numérico retorna a aritmética para UTC; uma data e hora sem zona pede ao navegador para usar interpretação local. Essas terminações respondem a perguntas diferentes, apesar dos prefixos de aparência semelhante.
O conversor rotula sua saída universal gerada e informa quando assumiu a hora local. Use esses avisos como parte do resultado, não como decoração. Um valor de hora copiado sem seu designador é uma evidência incompleta, enquanto uma época ou linha canônica ISO mantém o instante intacto entre os leitores.