Pergunta

Por que é

1 de janeiro de 1970 00:00:00

considerado o tempo de época ?

Foi útil?

Solução

As primeiras versões do Unix medido hora do sistema em intervalos de 1/60 s. Isto significava que um inteiro sem sinal de 32 bits só poderia representar um espaço de tempo menor do que 829 dias. Por esta razão, o tempo representado pelo 0 número (chamado época ) teve que ser definido no passado muito recente. Como este foi no início de 1970, a época foi definido para 1971/01/01.

Mais tarde, a hora do sistema foi alterado para incrementar cada segundo, o que aumentou o espaço de tempo que poderia ser representado por um inteiro não assinado de 32 bits para cerca de 136 anos. Como já não era tão importante para espremer cada segundo fora do balcão, a época foi arredondado para a década mais próximo, tornando-se assim 1970/01/01. Deve-se assumir que este foi considerado um mais puro pouco de 1971/01/01.

Note-se que a 32-bit assinado inteiro usando 1970/01/01 como sua época pode representar datas até 2038/01/19 , data em que vai envolver em torno de 1901/12/13.

Outras dicas

História .

As primeiras versões de tempo Unix teve um inteiro de 32 bits a uma incrementação taxa de 60 Hz, o que foi a taxa de o relógio do sistema no hardware os sistemas Unix início. O valor 60 Hz ainda aparece em alguns software Interfaces como resultado. A época também diferente do valor atual. O primeira edição Unix Programmer Manual do datada de 3 de Novembro de 1971 define os tempo Unix como "o tempo decorrido desde 00:00:00, 1 de janeiro de 1971, medido em sixtieths de um segundo".

http://en.wikipedia.org/wiki/Unix_time#History explica um pouco sobre as origens do tempo Unix e a época escolhidos. A definição de uma hora Unix ea data época passou por algumas mudanças antes de se estabilizar no que é agora.

Mas ela não diz por que exatamente 1/1/1970 foi escolhido no final.

trechos notáveis ??da página Wikipedia:

O primeira edição Manual datada de 3 de novembro de 1971 define o tempo Unix do Unix Programmer como "o tempo decorrido desde 00:00:00, 01 de janeiro, 1971 , medida em sixtieths de um segundo".

Devido [a] intervalo limitado, a época era redefinido mais do que uma vez , antes de a taxa foi alterado para 1 Hz e a época foi ajustado para o seu valor presente.

Vários problemas posteriores, incluindo a complexidade da presente definição, resultado de tempos Unix tendo sido definida gradualmente pelo uso, em vez de completamente definido para começar.

data de referência Epoch

Um época data de referência é um ponto na linha do tempo a partir do qual contamos Tempo. Momentos antes desse ponto são contados com um número negativo, momentos depois são contados com um número positivo.

Muitas épocas em uso

Por que é 01 de janeiro de 1970 00:00:00 considerado o tempo de época?

Não, não o época, um época. Existem muitas épocas em uso .

Esta escolha de época é arbitrária .

Os principais sistemas de computadores e bibliotecas usar qualquer um dos pelo menos dúzia de várias épocas . Um dos mais populares épocas é comumente conhecido como Unix Tempo , usando o momento 1.970 UTC você mencionou .

Embora popular, do Unix Tempo 1970 não pode ser o mais comum. Também na corrida para mais comum seria janeiro 0, 1900 por incontáveis ??Microsoft Excel e Lotus 1-2-3 planilhas, ou 1 de janeiro de 2001 usado por quadro de cacau da Apple em mais de um bilhão iOS / MacOS máquinas em todo o mundo em inúmeras aplicações. Ou, talvez, 06 de janeiro de 1980 usado por GPS dispositivos?

Muitos granularities

Diferentes sistemas usam granularidade diferente em tempo de contagem.

Mesmo o chamado “Unix Time” varia, com alguns sistemas contando toda segundos e alguns contagem milissegundos . Muitos banco de dados como Postgres usar microssegundos . Alguns, como o moderno java.time framework em Java 8 e posterior, use nanossegundos . Alguns ainda usam outros granularities.

ISO 8601

Porque há tanta variação no uso de uma referência de época e nos granularities, é geralmente melhor evitar comunicar momentos como uma contagem-de-época. Entre a ambiguidade da época e granularidade, além da incapacidade dos seres humanos a perceber valores significativos (e valores, portanto, falta de buggy), usar texto sem formatação em vez de números.

O ISO 8601 fornece um amplo conjunto de formatos práticos projetados poços para a data expressando -time valores como texto. Esses formatos são fáceis de analisar por máquina, bem como de fácil leitura para os seres humanos através das culturas.

Estas incluem:

Resposta curta:? Por que não

resposta mais longa: O tempo em si realmente não importa, contanto que quem o usa concorda com o seu valor. Como 1/1/70 tem sido usado por muito tempo, usá-lo vai fazer você código tão compreensível quanto possível para tantas pessoas quanto possível.

Não há grande mérito na escolha de uma época arbitrária apenas para ser diferente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top