Enfim...
(By wikipédia)
Apesar do calendário gregoriano facilitar o raciocínio cronológico para os humanos quando se deseja realizar comparações lógicas ou cálculos com datas em computadores este tipo de calendário acaba dificultando o trabalho.
Por exemplo, para nós, saber o que aconteceu primeiro, se foi algo em 10/04/1977 12:45:15 ou algo em 10/03/1976 13:09:12 é algo quase automático mas para resolver isso em um computador todos os 6 campos teriam que ser analizados independentemente, apesar disso ser realizado quase que instantâneamente não deixa de ser um trabalho extra que o processador poderia evitar se fizesse uso de outro formato de data. Imaginemos um banco de dados com milhares de registros e o processador recebendo um comando para colocar tudo em ordem cronológica, se pudermos fazer as comparações com uma única operação por registro ao invés de 6 operações/registro o tempo final também tenderá a ser 6 vezes menor.
Outra situação seria: quanto dá a data 16/09/2004 23:59:58 UTC mais 12 dias, 10 horas e 40 minutos? A complicação neste tipo de cálculo está em corrigir o overflow conforme o processamento em etapas vai sendo feito. Ou seja, ao somar os 40 minutos na data teríamos 95 minutos, antes de somar as 10 horas precisaríamos corrigir este valor, portanto o minuto seria 35 e a hora somaria 1, porem 24 horas também precisa ser corrigido para 0 o que somaria 1 no dia, resultando em 23/08/1980 0:35:12, somente então somaríamos as 10 horas, faríamos as correções, somaríamos os dias e novamente faríamos correções. Vê-se facilmente que é um trabalho repetitivo que deveria ser evitado.
Para resolver problemas do tipo dos citados acima e para unificar um formato de data foi criada a marca temporal UNIX, que é uma forma de calendário amplamente utilizada em sistemas computacionais principalmente os baseados no sistema operacional UNIX.
Ela é simplesmente um contador que teve seu valor zero associado com a data 01/01/1970 00:00:00UTC, e que é incrementado a cada segundo, assim:
- 01/01/1970 00:00:00 UTC -> 0
- 01/01/1970 00:00:25 UTC -> 25
- 01/01/1970 00:01:00 UTC -> 60
- 01/01/1970 01:00:00 UTC -> 3 600
- 02/01/1970 00:00:00 UTC -> 86 400
- 31/12/1998 23:59:58 UTC -> 915 148 798
- 01/01/1999 00:00:01 UTC -> 915 148 801
- 16/09/2004 23:59:58 UTC -> 1 095 379 198
Uma vez representadas no formato acima, as datas se tornam um pouco complicadas para o raciocínio humano mas são manipuladas muito facilmente pelos computadores, por exemplo, no caso da comparação entre datas com uma única operação o processador sabe se a data 17658546778 é maior ou não que a data 1765223546, e no caso dos cálculo seria algo como (usando o mesmo exemplo: 16/09/2004 23:59:58 UTC mais 12 dias, 10 horas e 40 minutos):
que é uma operação facilmente realizada pelos processadores, também em etapas, mas em menor quantidade que no caso do calendário gregoriano.
Tah, mto tri, mas e daí? E daí que o dia que isso entrou em vigor no dia 1 de janeiro de 1970, o marco inicial da era UNIX. O nome se deve ao fato de esta data, 01/01/1970 00:00:00 UTC, ser o marco zero do sistema de calendário usado pelo sistema operacional UNIX. Também pode ser chamada de era POSIX.
E hj, como você pode ver no exemplo abaixo "comemoraremos" 1234567890 da era UNIX ou era POSIX.
root@tiago-desktop:~# date -d @1234567890
Sex Fev 13 21:31:30 BRST 2009
Para tirar um screenshot você pode fazer um get timestamp:
tiago@tiago-desktop:~$ date
Sex Fev 13 14:03:55 BRST 2009
tiago@tiago-desktop:~$ date +%s
1234541037
tiago@tiago-desktop:~$
Talvez não seja a melhor maneira, mas dá para registrar, se conseguir.
Foi criada uma página para facilitar o acompanhamento:
http://1234567890.chalkley.org/
Tenho um alias do root para o meu email no postfix, vou tentar por o cron para fazer isso pra mim e guardar o email como registro "histórico". Criei um script com o seguinte conteúdo:
#!/bin/bashsleep 30
date +%s
date
Colequei ele para executar às 21:31, ele vai esperar 30 segundos, fazer o registro e enviar para o meu email.
Nenhum comentário:
Postar um comentário