Mostrando datas passadas e futuras com o comando date

Publicado por Lisandro Guerra em 06/11/2012

[ Hits: 29.496 ]

Blog: https://spartanix.com/

 


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:
Outras dicas deste autor

Java 7 no Linux Mint 14 e Ubuntu - Instalação via PPA

cut - Comando com exemplos

OpenSuSE: acesso ao Banco do Brasil

Configurar Apache e MySQL para não iniciar no boot no Linux Mint e Ubuntu

Unix Emulator Online

Leitura recomendada

Contador de Palavras no Terminal

FFmpeg: screencast do desktop gravando duas fontes de áudio simultaneamente

Manipulação de strings no bash

grep - Binary file XXX matches [Resolvido]

Configuração de placas de vídeo nVidia através do module assistant

  

Comentários
[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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts