Epoch x Unix Timestamp com o comando 'date'

Este artigo é continuação do FORMATANDO EXIBIÇÃO DE DATAS EM LINUX


Epoch é uma convensão que adota os segundos desde 1970-01-01 00:00:00 UTC.

Isto quer diser que 1º jan 1970 as 0h 0' 0'', é o marco inicial de contagem.
$date -u --date='Jan 1 00:00:00 UTC 1970'

Então se for exibido o segundo zero, ou marco inicial, a data será 1ºjan1970 as 0h0'0''
$date -u --date='@0'
Qui Jan 1 00:00:00 UTC 1970

Note que pode-se adotar o mesmo procedimento para qualquer data:
$date -d 'Tue Dec 6 14:32:00 BRST 2011' +%s
1323189120
No exemplo, 6 de dezembro de 2011, no horário brasileiro de verão, equivale a 1323189120 segundos.

$date --date='@1345241746'
Sex Ago 17 19:15:46 BRT 2012
No exemplo acima, 1345241746 segundos, equivale a Sex Ago 17 19:15:46 BRT 2012.

$date --date='TZ="America/Los_Angeles" 09:00 next Fri'
Sex Ago 24 13:00:00 BRT 2012

$date --date='TZ="America/Sao_paulo" 09:00 next Fri'
Sex Ago 24 06:00:00 BRT 2012

$date --date='TZ="America/Sao_paulo" 09:00 today'
Sáb Ago 18 06:00:00 BRT 2012
ou
$ date --date='TZ="America/Sao_paulo" now'
Sáb Ago 18 10:23:26 BRT 2012

date --date='Sat Aug 18 13:27:50 2012'
Sáb Ago 18 13:27:50 BRT 2012

Lembrete: a conversão da data tem que ser no padrão norte-americano, 29 de outubro de 2012 seria tratado da seguinte forma:
date -d '10/29/2012 15:32:45'
Seg Out 29 15:32:45 BRST 2012
ou
date -d '10/29/2012 15:32:45' +%s
1351531965

Para manter a codificação em POSIX, executa-se assim:

LANG=C date --date='Sat Aug 18 13:27:50 2012'
Sat Aug 18 13:27:50 BRT 2012
ou
LANG=C date -d '10/29/2012 15:32:45'
Mon Oct 29 15:32:45 BRST 2012
ou
LANG=C date -d 'Oct 29 15:32:45 2012'
Mon Oct 29 15:32:45 BRST 2012


Para converter o Timestamp em EPOCH

date --date='Aug 18 13:27:50 2012' +%s
1345307270
ou
date -d 'Sat Aug 18 13:27:50 2012' +%s
1345307270
ou
date -d '8/18 13:27:50 2012' +%s
1345307270

Para converter o EPOCH em Timestamp

date -d '@1345307270'
Sáb Ago 18 13:27:50 BRT 2012
ou
LANG=C date -d '@1345307270'
Sat Aug 18 13:27:50 BRT 2012

Referências

man date
http://brito.blog.incolume.com.br/2011/12/formatando-exibicao-de-datas-em-linux.html

Comentários