Texto e código / Guias

Segundos Unix, datas ISO e deslocamentos de tempo: um instante

Um carimbo de data/hora e uma cadeia de caracteres de data/hora podem descrever o mesmo instante. Os erros comuns são escala de unidade e falta de informações de fuso horário.

Instante, leitura do relógio e unidade

Um timestamp Unix é uma contagem de segundos relativa à época Unix em 1970-01-01 00:00:00 UTC. Uma data-hora de estilo ISO descreve campos de calendário e, quando identifica um instante, inclui um deslocamento como Z ou +01:00. Uma leitura simples de um relógio de parede sem uma zona não determina um instante único. Verifique também a unidade de timestamp: APIs de navegador e JavaScript Date comumente usam milissegundos, um número mil vezes maior que segundos Unix para o mesmo momento. A ferramenta Unix do MultiVerto espera segundos e aceita até três casas decimais para milissegundos. Ele renderiza o resultado em UTC com um sufixo Z, tornando a referência assumida explícita.

Um ano novo em dois relógios

Digite 1704067200 no conversor incorporado. Representa 2024-01-01T00:00:00.000Z. O mesmo instante pode ser escrito 2024-01-01T01:00:00+01:00: o relógio local está uma hora à frente, então subtraindo seu deslocamento positivo de uma hora retorna meia-noite UTC. Cole esse valor de deslocamento na ferramenta vinculada de ISO para Unix e ela retornará 1704067200. Uma data escrita como 2024-01-01T01:00:00Z seria um instante diferente, exatamente uma hora depois. Os dígitos na parte do calendário não são suficientes sem o sufixo. Esse par trabalhado é um teste de regressão útil para integrações de log e API.

Três representações identificam o mesmo instante.
  1. Unix: 1704067200 segundos
  2. UTC: 2024-01-01T00:00:00.000Z
  3. Deslocamento UTC: 2024-01-01T01:00:00+01:00

Segundos, milissegundos e frações

Quando uma API retorna um valor de época contemporâneo com aparência de 13 dígitos, consulte o contrato para saber se a unidade é milissegundos, e não segundos. Não deduza a unidade apenas do comprimento para todas as datas possíveis. Para converter milissegundos em segundos, divida por 1000 e preserve a parte fracionária pretendida. Por exemplo, 1704067200500 milissegundos correspondem a 1704067200,5 segundos e a 00:00:00.500Z na data do exemplo. A MultiVerto aceita no máximo três dígitos após o separador decimal e fornece uma saída ISO com precisão de milissegundos. Se o sistema registra microssegundos ou nanossegundos, preserve-os em uma ferramenta apropriada para essa escala antes de arredondar. Arredondar cedo demais pode fazer eventos próximos parecerem simultâneos.

Um deslocamento não é um histórico de fuso horário

Um deslocamento numérico diz como um determinado relógio local se relaciona com o UTC nesse carimbo de data/hora. Não nomeia uma região nem codifica futuras regras de horário de verão. Um compromisso recorrente em 09:00 em um local nomeado precisa de um banco de dados de fuso horário real, não um +01:00 permanentemente fixo. MultiVerto requer um deslocamento explícito ou Z para sua entrada ISO-para-Unix, evitando uma leitura local ambígua. Seu formato aceito usa uma data de calendário completa, tempo através de segundos e não mais do que três dígitos fracionários. Ele rejeita datas inválidas e valor de segundo bissexto 60. Esse é um subconjunto deliberado de notações de data e hora mais amplas, portanto verifique o contrato de entrada real antes de colar dados externos.

Uma verificação de ida e volta confiável

Anote o valor de origem, seja segundos ou milissegundos, e o fuso horário ou deslocamento especificado pelo seu produtor. Converta o carimbo de data/hora para texto UTC ISO, depois inverta essa cadeia exata e compare os segundos numéricos. Em seguida, teste uma segunda ortografia com um deslocamento explícito representando o mesmo instante. Se os valores diferem exatamente em 3600 segundos, suspeite de um erro de deslocamento de uma hora; se eles diferem em um fator de 1000, suspeite de escala de unidade. Não altere um instante registrado apenas para fazer com que seu relógio exibido se pareça com o seu relógio local. Armazene o instante em um formulário inequívoco e formate-o para um usuário apenas no limite de exibição.

Testar o conversor

Converta segundos Unix para texto ISO UTC, em seguida, inverta-o.

Converta segundos Unix desde 1970-01-01 UTC em uma data-hora ISO 8601 UTC.

Abrir o conversor completo

Mais guias

Guias de conversão

Explorar guias