Pular para o conteúdo

Mostrando datas passadas e futuras com o comando date

Dica publicada em Shell Script / Miscelânea
Lisandro Guerra Lisandro
Hits: 30.268 Categoria: Shell Script Subcategoria: Miscelânea
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Mostrando datas passadas e futuras com o comando date

É possível exibir a data presente, datas futuras e datas passadas com o comando date.

Para começar, o comando puro nos indica a data presente:

date
Sáb Nov  3 22:35:15 BRST 2012

E se for no futuro próximo, digamos daqui a uns 20 segundos? Então:

date --date='20 seconds'
Sáb Nov  3 22:36:14 BRST 2012

Que tal daqui a 6 horas?

date --date='6 hours'
Dom Nov  4 04:37:10 BRST 2012

E amanhã, que horas serão?

date --date='tomorrow'
Dom Nov  4 22:37:51 BRST 2012

Ou:

date --date="1 day"
Dom Nov  4 22:38:57 BRST 2012

Ou:

date --date="next day"
Dom Nov  4 22:39:57 BRST 2012

Ou ainda:

date --date="-1 days ago"
Dom Nov  4 22:40:47 BRST 2012

Daqui a 2 dias:

date --date="2 days"
Seg Nov  5 22:41:22 BRST 2012

Daqui a 1 semana:

date --date='1 week'
Sáb Nov 10 22:42:37 BRST 2012

Daqui a 1 mês e daqui a 2 meses:

date --date='1 month'
Seg Dez  3 22:43:22 BRST 2012

date --date="2 months"
Qui Jan  3 22:44:03 BRST 2013

Daqui a 4 anos:

date --date="4 years"
Qui Nov  3 22:44:37 BRST 2016

Se quiser saber na próxima terça-feira (detalhe que fica em 00:00:00, pois é terça desde a zero hora):

date --date='this tuesday'
Ter Nov  6 00:00:00 BRST 2012

E por fim uma combinação de parâmetros:

date --date="5 years 10 months 1 day 40 seconds"
Ter Set  4 21:50:32 BRT 2018

Agora as várias maneiras de apresentar datas passadas.

Pouco provável que quisesse saber, mas para alguma aplicação pode ser útil saber de 30 segundos passados:

date --date='30 seconds ago'
Sáb Nov  3 22:50:02 BRST 2012

Para saber de ontem:

date --date="yesterday"
Sex Nov  2 22:51:08 BRST 2012

Ou:

date --date="1 day ago"
Sex Nov  2 22:51:36 BRST 2012

Que tal 10 dias passados:

date --date="10 days ago"
Qua Out 24 22:52:33 BRST 2012

E nove meses passados seria:

date --date="9 months ago"
Sex Fev  3 22:53:10 BRST 2012

Será que houve prescrição? Para ver a data 10 anos antes:

date --date="10 years ago"
Dom Nov  3 22:53:49 BRST 2002

E agora aquela combinação de parâmetros:

date --date="5 years ago 10 months ago 1 day ago 40 seconds ago"
Ter Jan  2 22:54:05 BRST 2007

Como podem notar em momentos uso expressões no singular, outras no plural, por vezes uso as aspas e outras o apóstrofo. O que eu quis mostrar é que independe, posso usar 10 days ou 10 day e o resultado será o mesmo, assim como se usar "1 month" ou '1 month' também se obtém o mesmo resultado.

Obs.: Podem ver pela evolução do horário nos exemplos que fui executando no terminal e passando para a dica aqui.

Fontes:
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Acesso remoto ao Raspbian com xrdp

Linux Mint e Ubuntu - Instalação do OpenSCAD 2015.3

andLinux no XP

iPod Shuffle no Linux Mint e Ubuntu

Scanner Gotec (Plustek) no Linux Mint

Comando seq com saída em hexadecimal

Canivete suíço em bash

Comentar em bloco

Letras Bacanas no seu Shell Script sem Figlet

Copiar uma página do MAN para texto simples sem os ^H^_

#1 Comentário enviado por andre.vmatos em 06/11/2012 - 16:38h
Ótima dica, parabéns. São opções relativamente pouco documentadas e conhecidas, mas bastante úteis.

Contribuir com comentário

Entre na sua conta para comentar.