Porque é
1 de janeiro de 1970 00:00:00
considerado o tempo da época ?
Porque é
1 de janeiro de 1970 00:00:00
considerado o tempo da época ?
Respostas:
As primeiras versões do unix mediam o tempo do sistema em intervalos de 1/60 s. Isso significava que um número inteiro não assinado de 32 bits só poderia representar um período de tempo inferior a 829 dias. Por esse motivo, o tempo representado pelo número 0
(chamado época ) teve que ser definido em um passado muito recente. Como isso foi no início dos anos 1970, a época foi definida para 1971-1-1.
Mais tarde, a hora do sistema foi alterada para incrementar a cada segundo, o que aumentou o período de tempo que poderia ser representado por um número inteiro não assinado de 32 bits para cerca de 136 anos. Como não era mais tão importante espremer cada segundo do balcão, a época foi arredondada para a década mais próxima, tornando-se 1970-1-1. Deve-se supor que isso foi considerado um pouco melhor do que 1971-1-1.
Observe que um número inteiro assinado de 32 bits usando 1970-1-1 como época pode representar datas até 2038-1-19 , data em que ele será agrupado em 1901-12-13.
História .
As versões mais antigas do tempo Unix tinham um número inteiro de 32 bits incrementando a uma taxa de 60 Hz, que era a taxa do relógio do sistema no hardware dos primeiros sistemas Unix. O valor 60 Hz ainda aparece em algumas interfaces de software como resultado. A época também diferia do valor atual. A primeira edição do Unix Programmer's Manual, datada de 3 de novembro de 1971, define o horário do Unix como "o horário desde 00:00:00 de 1º de janeiro de 1971, medido em sexagésimos de segundo".
http://en.wikipedia.org/wiki/Unix_time#History explica um pouco sobre as origens do tempo do Unix e a época escolhida. A definição de hora unix e a data da época passaram por algumas mudanças antes de estabilizar o que é agora.
Mas não diz por que exatamente 1/1/1970 foi escolhido no final.
Trechos notáveis da página da Wikipedia:
A primeira edição do Manual do Programador Unix de 3 de novembro de 1971 define o horário do Unix como "o horário desde 00:00:00 de 1º de janeiro de 1971 , medido em sexagésimos de segundo".
Por causa da faixa limitada, a época foi redefinida mais de uma vez , antes que a taxa fosse alterada para 1 Hz e a época fosse definida como seu valor atual.
Vários problemas posteriores, incluindo a complexidade da presente definição, resultam do tempo do Unix ter sido definido gradualmente pelo uso, em vez de totalmente definido para começar.
Uma data de referência da época é um ponto na linha do tempo a partir da qual contamos o tempo. Momentos antes desse ponto são contados com um número negativo, momentos depois são contados com um número positivo.
Por que 1 de janeiro de 1970 00:00:00 é considerado o horário da época?
Não, não a época, uma época. Existem muitas épocas em uso .
Essa escolha de época é arbitrária .
Os principais sistemas e bibliotecas de computadores usam qualquer uma de pelo menos duas dúzias de épocas . Uma das épocas mais populares é conhecida como Unix Time , usando o momento UTC de 1970 que você mencionou.
Embora popular, o 1970 do Unix Time pode não ser o mais comum. Também em exibição, o mais comum seria 0 de janeiro de 1900 para inúmeras planilhas do Microsoft Excel e Lotus 1-2-3, ou 1º de janeiro de 2001, usadas pela estrutura Cocoa da Apple em mais de um bilhão de máquinas iOS / macOS em todo o mundo em inúmeros aplicativos. Ou talvez 6 de janeiro de 1980, usado por dispositivos de GPS ?
Sistemas diferentes usam granularidade diferente na contagem do tempo.
Até o chamado "Tempo Unix" varia, com alguns sistemas contando segundos inteiros e alguns contando milissegundos . Muitos bancos de dados, como o Postgres, usam microssegundos . Alguns, como a moderna estrutura java.time no Java 8 e posterior, usam nanossegundos . Alguns usam ainda outras granularidades.
Como há muita variação no uso de uma referência de época e nas granularidades, geralmente é melhor evitar momentos de comunicação como contagem de épocas. Entre a ambiguidade da época e da granularidade, além da incapacidade dos seres humanos de perceber valores significativos (e, portanto, perder valores de buggy), use texto simples em vez de números.
A norma ISO 8601 fornece um amplo conjunto de formatos práticos e bem projetados para expressar valores de data e hora como texto. Esses formatos são fáceis de analisar por máquina e fáceis de ler por seres humanos em várias culturas.
Esses incluem:
2019-01-23
2019-01-23T12:34:56.123456Z
2019-01-23T18:04:56.123456+05:30
2019-234
Resposta curta: por que não?
Resposta mais longa: o tempo em si realmente não importa, desde que todos que o usem concordem com seu valor. Como 1/1/70 está em uso há tanto tempo, sua utilização fará com que você codifique o mais compreensível possível para o maior número possível de pessoas.
Não há grande mérito em escolher uma época arbitrária apenas para ser diferente.