Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Xfce simples e original
Por talbas
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Desvendando o comando DATE
Linux user
Publicado por Rafael Brianezi da Silva em 24/06/2008

Login: raf-tiger, 146400 pontos
[ Hits: 23187 ]

Desvendando o comando DATE

Este tutorial mostra alguns exemplos de como utilizar o comando date para:
  • Exibir a data/hora do Sistema;
  • Alterar a data/hora do Sistema;
  • Exibir a data/hora Formatada;
  • Efetuar cálculos com Data e Hora.

Alterando a Data e Hora do Sistema:

Toda vez que o sistema operacional Linux é inicializado, este busca no relógio da BIOS (também chamado de relógio de hardware) as configurações necessárias para configurar a data/hora do sistema. Ou seja, no Linux podemos ter a data/hora do sistema diferente da data/hora que temos no hardware, e essa informação é muito importante no momento de efetuar ajustes.

Pode-se ajustar sua data e hora conforme necessário, porém a mesma não será mantida até o próximo boot, quando o sistema fará uma nova requisição ao relógio do hardware para ajustar-se.

Se for executado apenas o comando date no shell do Linux será obtido um resultado com a seguinte formatação:

Qui Jun 19 21:37:16 BRT 2008

Para ajustar a data do sistema para o dia 14 de setembro de 2008 (meu aniversário rsrs :) ) poderia ser utilizado o seguinte comando:

Sintaxe: date mês/dia/ano

# date -s 09/14/2008

Após ajustar a data do sistema é importante sincronizá-la com a data do hardware, para isso use o seguinte comando na seqüência:

# hwclock -w

Dica: Para ajustar a data/hora do sistema e sincronizar com o hardware em um único comando é muito simples, basta seguir a seguinte sintaxe:

mm (mês 00-12)
dd (dia 00-31)
HH (hora 00-23)
MM (min 00-59)
YYYY (0000-9999)

date mmddHHMMYYYY

Exemplo 1: Ajustar a data para o dia 14 de setembro de 2008 e a hora para 18:30, por fim sincronizar com o relógio do hardware:

# date 091418302008 | hwclock -w

Exemplo 2: Ajustar a data para o dia 10 de agosto de 1987 e a hora para 07:50, por fim sincronizar com o relógio do hardware:

# date 081007501987 | hwclock -w

Parâmetros que podem ser utilizados para formatação de datas:
  • %A : dia da semana (domingo,..., sábado).
  • %B : nome do mês (janeiro,..., dezembro).
  • %H : hora do dia (0 a 23).
  • %M : minuto (0 a 59).
  • %S : segundos (0 a 61).
  • %T : hora no formato hh:mm:ss.
  • %Y : ano.
  • %a : dia da semana abreviado (dom,..., sab).
  • %b : nome do mês abreviado (jan,..., dez).
  • %c : dia da semana, data e hora.
  • %d : dia do mês (00-31).
  • %j : dia ano (1 a 366).
  • %m : mês (1 a 12).
  • %s : número de segundos desde das zero horas de 01/01/1970.
  • %w : dia da semana, onde 0 = domingo, 1 = segunda,..., 6 = sábado.
  • %x : representação da data local.
  • %y : os dois últimos dígitos do ano.
  • %r : formato de 12 horas completo (hh:mm:ss AM/PM)

Exemplos de formatações de data/hora com o comando date no shell:

Comando: # date
Saída: Qui Jun 19 22:40:28 BRT 2008

Comando: # date +%d/%m/%y
Saída: 19/06/08

Comando: # date +%d/%m/%Y
Saída: 19/06/2008

Comando: # date +%H:%M:%S
Saída: 22:45:24

Comando: # date "+%d %B %Y"
Saída: 19 junho 2008

Comando: # date "+%d %B %Y , %A"
Saída: 19 junho 2008 , quinta

Exemplos de cálculos com Data/Hora no Linux.

Qual a data de cinco dias atrás?

Comando: # date +%d%m%y -d "5 days ago"
Saída: 140608

Que dia e hora serão, se adicionarmos 45 horas na hora atual?

Comando: # date --date "45 hours"
Saída: Sáb Jun 21 20:02:38 BRT 2008

Que dia será daqui duas semanas?

Comando: # date -d "2 week"
Saída: Qui Jul 3 23:22:25 BRT 2008

Que dia será daqui a 5 meses e 2 dia?

Comando: # date -d "5 month 2 day"
Saída: Sáb Nov 22 00:37:53 BRST 2008

Outro exemplos:

# date
Qui Jun 19 23:56:28 BRT 2008

# date --date=now
Qui Jun 19 23:56:28 BRT 2008

# date --date=today # Mesma Coisa
Qui Jun 19 23:56:28 BRT 2008

# date --date='3 seconds'
Qui Jun 19 23:56:31 BRT 2008

# date --date='3 seconds ago'
Qui Jun 19 23:56:25 BRT 2008

# date --date='4 hours'
Sex Jun 20 03:56:28 BRT 2008

# date --date='tomorrow'
Sex Jun 20 23:56:28 BRT 2008

# date --date='1 day'
Sex Jun 20 23:56:28 BRT 2008

# date --date='1 days'
Sex Jun 20 23:56:28 BRT 2008

# date --date='yesterday'
Qua Jun 18 23:56:28 BRT 2008

# date --date='1 day ago'
Qua Jun 18 23:56:28 BRT 2008

# date --date='1 days ago'
Qua Jun 18 23:56:28 BRT 2008

# date --date='1 week'
Qui Jun 26 23:56:28 BRT 2008

# date --date='1 fortnight'
Qui Jul 3 23:56:28 BRT 2008

# date --date='1 month'
Sáb Jul 19 23:56:28 BRT 2008

# date --date='1 year'
Sex Jun 19 23:56:28 BRT 2009


Outras dicas deste autor

Leitura recomendada
   Dica Linux recomendada Instação do layer7 no Debian Lenny
   Dica Linux recomendada Vivo no Linux com Aiko 82d
   Dica Linux recomendada Deixando os programas em seu idioma no Ubuntu
   Dica Linux recomendada Gerenciando log do Oracle através do Linux com Logrotate
   Dica Linux recomendada Arch Linux no Dell Inspiron 1440

Comentários
[1] Comentário enviado por xfabi0x em 01/07/2008 - 18:39h:

Parabéns a dica é muito útil!!!!!

[2] Comentário enviado por minduim em 27/12/2008 - 15:43h:

Rafael, vc pode ajudar com meu problema? Eu quero fazer uma comparação se a data atual for menor que a data demarcada manda uma mensagem, eu consegui comparar se a data for igual, mas não se a data for menor. Obs.: Teria que ser:

SE Data_Atual >= Data_Comparada
ENTAO Mensagem

Ex.:

data_atual=$(date "+%d/%m%y")
data_comparada=$(date "+26/12/2008")
if [ $data_atual = $data_comparada ]
then
echo "Deu Certo"
fi

[3] Comentário enviado por edjin em 24/03/2009 - 10:45h:

Otimo sua iniciativa!!!!!

[4] Comentário enviado por ismavolk em 11/11/2011 - 11:21h:

MUITO MUITO MAS MUUUITO bom o calculo com horas!
Estou fazendo um script para calcular horas trabalhadas e isso me ajudou muitíssimo.

Obrigado!!!


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.