Ferramentas para desenvolvedores · Conversor de carimbo de data/hora Unix
Como as transições de horário de verão alteram o que a coluna da hora local mostra
· Como funciona
carimbos de data/hora fusos horários depuração
Duas vezes por ano, o relógio local dá um salto e os valores de época em torno da transição produzem horários locais que se repetem ou nunca existem. Esta postagem explica a mecânica para que a saída do conversor em torno de uma alteração DST faça sentido.
O evento registrado em 01:30 duas vezes - duas épocas com intervalo de uma hora e ambos exibem o mesmo horário local
Duas épocas distintas podem ser formatadas para o mesmo rótulo de relógio de parede durante uma alteração de deslocamento para trás. A pasta de trabalho corrigiu esse rótulo em 01:30, mas o repositório não estabelece um horário de transição universal. O intervalo de repetição pertence às regras aplicáveis da zona do navegador, e não ao horário Unix em si.
Quando aparecerem duplicatas, mantenha a época, a linha ISO e o deslocamento exibido juntos. Classificar apenas uma coluna `HH:mm` local pode reverter ou recolher eventos. A renderização UTC de ToolAcre dá a cada instante uma âncora cronológica única, mesmo quando a face local familiar revisita um intervalo anterior.
São possíveis leituras locais repetidas; verifique a transição real em seu navegador em vez de assumir 01:30
A contagem de épocas progride através de uma transição sem alterar sua unidade ou origem. O que muda é o deslocamento que o Intl aplica ao formatar a Data na zona local. Dois segundos consecutivos permanecem consecutivos em UTC mesmo que seus rótulos locais pareçam saltar mais longe ou para trás.
Esta distinção evita “correções” destrutivas. Subtrair uma hora das épocas armazenadas porque um painel repete uma hora altera os eventos válidos. Corrija a formatação, agrupamento ou ambigüidade no rótulo exibido. Preservar o instante da máquina, a menos que haja evidências que mostrem que o relógio de origem estava errado.
Um invariante útil sobrevive a cada mudança de deslocamento: subtrair os dois valores de época fornece sua verdadeira duração decorrida. Subtrair tempos de parede formatados pode não ser possível, porque seus deslocamentos podem ser diferentes.
Uma transição altera o deslocamento aplicável enquanto a época permanece contínua
Durante uma alteração de deslocamento direto, uma série de etiquetas de parede locais podem não ser produzidas. Sua largura e posição não podem ser generalizadas com segurança a partir desta implementação; ToolAcre pergunta ao Intl e relata o resultado. Ele não contém nenhuma suposição codificada de que cada turno dura uma hora ou ocorre em 02:00.
Um conversor inicia a partir de um instante existente, portanto simplesmente mostra a leitura local aplicável em cada lado. Agendar uma entrada local inexistente é uma operação diferente. Se um formulário precisar resolver essa situação, sua política de produto deverá decidir se rejeita, move ou reinterpreta o tempo de parede solicitado.
Uma transição direta pode pular leituras locais; o intervalo exato depende das regras de zona verificadas
Uma alteração para trás faz com que outro intervalo ocorra mais de uma vez em deslocamentos diferentes. O texto local torna-se insuficiente, a menos que inclua o deslocamento ou uma época associada. ToolAcre solicita `shortOffset`, dando ao leitor uma maneira de distinguir as duas renderizações quando a plataforma fornece esse formato.
A desduplicação do banco de dados digitada em data e minuto local pode, portanto, descartar um registro real. Eventos chave com identificadores estáveis e armazenam seus instantes. Os campos do calendário local são projeções de consulta úteis, mas não devem substituir o valor que distingue a primeira ocorrência da segunda.
Uma transição para trás pode repetir leituras locais; o intervalo exato depende das regras de zona verificadas
Use uma transição documentada para a zona configurada em seu dispositivo de teste e escolha duas épocas com uma hora de intervalo em torno dela. Converta cada um explicitamente como segundos e registre ISO, saída local e deslocamento. Se as gravadoras locais avançarem em um valor diferente de UTC, a alteração da compensação será responsável pela diferença.
Este método intencionalmente não codifica uma data ou cidade. A tarefa alerta contra a afirmação de regras de transição de zona nomeada sem evidências e o repositório não possui nenhum acessório de zona fixa. Seu par observado torna-se um exemplo reproduzível e trabalhado para aquele ambiente, enquanto o artigo permanece verdadeiro para leitores de outros lugares.
Exemplo resolvido: derivar um par de transição do conversor em vez de publicar uma regra de zona não verificada
Algumas zonas configuradas podem não apresentar alterações sazonais durante o ano testado; outros podem diferir entre datas históricas. O conversor pode exibir esses resultados, mas não explica ou cria versões das regras. Um cálculo de deslocamento fixo não pode descobrir pontos de mudança porque assume a própria constância que está sendo testada.
Para testes de regressão, fixe um ambiente e registre os dados esperados da plataforma, em vez de tratar um laptop como universal. Para suporte, peça o nome da zona, deslocamento instantâneo e renderizado. Dizer apenas “DST está errado” omite as evidências necessárias para reproduzir o que o navegador realmente formatou.
O que isso não cobre: agendar horários locais futuros em uma alteração DST, que requer regras de zona em vez de um deslocamento fixo
Este painel converte um instante já conhecido. Ele não calcula um compromisso futuro recorrente, como “toda segunda-feira às 09:00” por meio de alterações de deslocamento. Esse trabalho começa com uma zona nomeada e uma política para lacunas e sobreposições, nenhuma das quais representada por uma época fixa.
A fusão dos dois fluxos de trabalho causa um bug sutil: adicionar sete vezes 86,400 segundos preserva a duração decorrida, não necessariamente o mesmo rótulo futuro do relógio de parede. Use lógica de agendamento criada para recorrência em tempo civil. Use o conversor de época posteriormente para inspecionar ocorrências específicas resolvidas.
Além disso, um agendador deve reter se o usuário quis dizer a ocorrência anterior ou posterior durante uma sobreposição. Essa escolha não tem representação em uma sequência de relógio de deslocamento fixo isolada.
Conclusão: confie na época, duvide do relógio de parede - e como a leitura UTC do conversor de carimbo de data / hora Unix ancora a leitura local
Confie na época para fazer o pedido e trate o relógio de parede como uma representação dependente do contexto. ToolAcre mantém uma constante de data enquanto Intl fornece UTC e formulários locais. Um salto ou repetição surpreendente pode, portanto, ser examinado sem alterar a contagem subjacente.
O pacote de depuração seguro é composto por valor bruto, unidade, saída ISO, rótulo de zona local e deslocamento. Com esses campos, uma transição é visível como uma alteração na regra de formatação. Sem eles, o texto repetido do relógio convida a suposições sobre solicitações duplicadas, filas atrasadas ou relógios de servidor quebrados que os dados não suportam.
Este pacote de evidências também torna os relatórios de bugs portáteis. Outro engenheiro pode reproduzir o instante UTC mesmo quando sua própria zona local e renderização do relógio de parede são completamente diferentes.