Português (Brasil)

Ferramentas para desenvolvedores · Conversor de carimbo de data/hora Unix

Por que o tempo Unix começa em 1 janeiro 1970: uma breve história da época

· Fundo

carimbos de data/hora horário unix formatos de dados

Uma linha do tempo irradiando do ponto zero na época Unix
Ilustração vetorial original ToolAcre

Nada aconteceu em 1 janeiro 1970; a data foi escolhida por conveniência depois que o relógio original do Unix ameaçou transbordar. Esta postagem conta a história dos primeiros relógios Unix, a mudança para segundos e como a convenção se espalhou por toda parte.

Uma data que ninguém comemora — por que 1970 continua aparecendo em bugs, padrões e painéis meio século depois

Janeiro 1970 aparece sempre que o software confunde uma pequena duração ou segundos contam como milissegundos. Não é um aniversário substituto gerado por ToolAcre; é o ponto zero a partir do qual a entrada foi interpretada. O teste para época zero retorna `1970-01-01T00:00:00.000Z` e quinta-feira.

Ver essa data é, portanto, um diagnóstico. Um valor próximo de zero, um campo ausente forçado a zero ou uma incompatibilidade de escala podem cair nas proximidades. Capture o valor bruto antes de culpar a formatação. A saída do calendário revela a aritmética recebida.

A tabela de época notável de ToolAcre dá a zero um rótulo deliberado, reforçando que 1970 é uma referência definida em vez de uma página de erro escolhida pelo navegador.

O primeiro relógio do Unix - contando sexagésimos de segundo desde o início de 1971 e ficando sem espaço de 32 bits em menos de três anos

A apostila fornecia um relato detalhado de um relógio adiantado contando sessenta avos a partir de 1971. Nenhuma das fontes de repositório necessárias documenta esse histórico. Repeti-lo de memória violaria o contrato de autoria, mesmo que um histórico externo pudesse apoiá-lo posteriormente.

O que pode ser demonstrado é o eixo atual: zero na época, segundos positivos depois e segundos negativos antes. Esse mecanismo é suficiente para utilizar o conversor e o software de diagnóstico. Um futuro artigo histórico deve adicionar fontes primárias ou acadêmicas revisadas, em vez de tratar o código como evidência de reuniões de design.

O repositório não fornece o primeiro design de relógio do Unix, portanto nenhuma reconstrução histórica é afirmada

ToolAcre nomeia seu carimbo de data/hora Unix de entrada e o define na orientação de erro como segundos ou milissegundos desde 1970-01-01 UTC. A fonte não explica por que esse ano foi selecionado, se a redondeza importava ou qual horizonte os designers queriam. Esses motivos permanecem omitidos.

A aritmética explica a utilidade duradoura de uma origem fixa: a subtração produz a distância decorrida, a comparação ordena os instantes e um sinal indica em que lado de zero está um valor. A escolha do zero é convencional; a consistência entre produtores e consumidores é o que torna os números interoperáveis.

Essa distinção mantém a convenção e a consequência separadas. O software pode confiar com segurança nas consequências enquanto os historiadores continuam a avaliar as evidências sobre a origem da convenção.

A definição implementada usa 1970; os motivos para escolhê-lo requerem fontes históricas não presentes aqui

Os testes modelam todos os dias como a conversão POSIX e saltam explicitamente de `2016-12-31T23:59:59Z` para `2017-01-01T00:00:00Z`. Essa é uma evidência executável do comportamento desta ferramenta. Não é uma citação do texto ou do escopo completo de qualquer norma externa.

Mantenha as declarações de padrões distintas dos testes de implementação. Um teste prova o que um lançamento faz em seus fixtures; um documento de padrões define o que os sistemas em conformidade devem fazer. Aqui o contrato prático é suficientemente claro para prever a produção sem inventar a história da formalização.

O teste também evita que um refatorador futuro insira silenciosamente um rótulo de salto especial na saída. A compatibilidade observável é protegida sem exagerar por que a convenção existe.

ToolAcre testa o modelo estilo POSIX, mas não serve como citação de padrões

JavaScript Date representa sua contagem de época em milissegundos, enquanto ToolAcre aceita segundos Unix e os converte multiplicando por 1,000. A rota também retorna os dois formulários. Esse limite explica por que os aplicativos da Web frequentemente expõem o mesmo instante com três zeros decimais extras.

O repositório não pode estabelecer a cronologia pela qual bancos de dados, bibliotecas C e outros ecossistemas adotaram representações de época. Em vez de narrar uma propagação sem fontes, mostra uma costura de interoperabilidade atual e rotula a unidade usada. Essa é uma evidência prática para os desenvolvedores que trabalham hoje.

Essa restrição evita uma falha de conteúdo familiar: uma sequência de marcos plausíveis repetidos sem citações até que leitores posteriores confundam a repetição acumulada com evidência documental.

A evidência do repositório mostra a representação em milissegundos de JavaScript, não o histórico completo de propagação

Uma época fixa não contém zona local. ToolAcre formata a data resultante em UTC e separadamente na zona local do navegador. Valores negativos estendem-se antes de zero, como demonstra o teste −1. Essas consequências decorrem diretamente de um eixo numérico e de uma camada de formatação.

A implementação também possui um intervalo de datas de ±8.64×10¹⁵ milissegundos. Este é um limite da representação escolhida, não um limite inerente à ideia abstrata de uma época. Sempre identifique qual faixa e unidade estão sendo discutidas antes de generalizar a partir de um resultado de conversor.

O formatador local pode aplicar uma data antes ou depois do limite UTC dependendo do deslocamento. Isso não move zero; muda apenas a projeção do calendário humano.

O que isto não cobre — épocas de outros sistemas, como 1900, 1601 e 1980, que têm suas próprias histórias

Outros sistemas podem escolher outro zero e outra escala, e é por isso que um número inteiro grande pode permanecer sem sentido em ambas as unidades ToolAcre. Este artigo não reconta as histórias das origens de 1900, 1601 ou 1980. Em vez disso, o artigo 340 concentra-se em reconhecer essa incompatibilidade e derivar conversões de definições documentadas.

Quando a origem for desconhecida, compare com a documentação de origem em vez de mudar os zeros repetidamente. Um conversor Unix assume intencionalmente 1970; ele não pode identificar automaticamente uma época estrangeira a partir de um número. Manter a origem ao lado da unidade evita que um sucesso aritmético se torne um erro semântico.

Outras origens de época são comparadas separadamente, sem reivindicar suas histórias aqui

A lição confiável é mecânica: o zero do Unix é mapeado para o início de 1970 UTC, os sinais se estendem ao redor dele e os segundos se tornam JavaScript milissegundos antes da formatação da data. ToolAcre torna cada um desses fatos observáveis ​​com valores 0, −1 e a tabela de época notável.

As razões pelas quais as pessoas selecionaram essa convenção pertencem à história de origem, e não à inferência do código moderno. Respeitar esse limite produz um relato mais curto, porém mais verdadeiro. Use o conversor para aritmética; use material histórico apropriado antes de atribuir motivos ou marcos.

A disciplina da evidência faz parte da precisão técnica. Uma omissão precisa informa aos mantenedores exatamente quais novas fontes são necessárias antes que o relato histórico possa se expandir de forma responsável.