[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re:[shell-script] Converter Unix Time Stamp
From: |
MrBiTs |
Subject: |
Re:[shell-script] Converter Unix Time Stamp |
Date: |
Wed, 16 Feb 2005 06:05:52 -0300 |
> Gostaria de saber se alguém aqui tem alguma solução para converter
> o famoso unix time stamp para o fomato de data utilizado pelos
> seres humanos. Ou se > existe algum comando no Unix ou Linux que
> faça essa tarefa.
Os mais simples que encontrei sao, tomando-se como unix timestamp o valor
54762000, data importantíssima para a humanidade:
$ perl -e "print scalar localtime(54762000);"
Sun Sep 26 16:40:00 1971
Ou, em awk
$ echo "54762000" | awk '{print strftime("%c",$1),substr($0, 14)}'
Sun Sep 26 16:40:00 1971
Agora, MUITA ATENCAO
A definicao de Unix Timestamp é o número de segundos passados desde as 0 hora
do dia 1o de Janeiro de 1970, UTC. Entao, um comando $ perl -e "print scalar
localtime(0);" DEVERIA devolver-me Thu Jan 1 00:00:00 1970. Mas isso nao
acontece. Veja:
$ perl -e "print scalar localtime(0);"
Wed Dec 31 21:00:00 1969
Isso acontece pq Unix Timestamp baseia-se na hora local, ou no seu timezone.
Como estamos 3 horas atrasados em relacao ao UTC ( hora do meridiano de
greenwich ) isso acontece.
Se vc colocar
$ TZ=UTC perl -e "print scalar localtime(0);"
Vai ter o resultado esperado.
- Re:[shell-script] Converter Unix Time Stamp,
MrBiTs <=