date -d: quais são as strings aceitas?

3

Estou usando o comando "date" para executar uma simples aritmética de data. A opção "-d" me permite fazer isso, mas as páginas do manual não são muito claras sobre o que são dados válidos. Quais são todas as opções aceitas e como eu descubro isso?

Eu posso usar este comando para determinar a data há 5 minutos: date -d "5-minutes-ago" +% H:% M

Este comando também funciona: date -d "-5 minutes" +% H:% M

Eu tropecei nessas opções por acidente / frustração. Não vejo uma opção "minutos atrás" ou "-X minutos" listada na documentação.

Eu usaria o Perl para fazer a aritmética, mas infelizmente não posso instalar nenhum pacote Perl adicional.

    
por curious_george 04.03.2011 / 18:57

3 respostas

4

Existem algumas sequências de datas relativas. minutes ago funciona (vs. minutes-ago com o traço).

Existem alguns exemplos nas páginas coreutils date info:

link

    
por 04.03.2011 / 19:04
1

Você não precisa instalar pacotes adicionais para lidar com data em Perl; basta usar hora () para obter um deslocamento de época e localtime () para convertê-lo em uma estrutura de dados de data útil.

    
por 04.03.2011 / 19:12
0

Um truque é o formato de registro de data e hora do UNIX (isso é útil se você estiver gerenciando um banco de dados de arquivo de texto - deseja manter seus dados de data / hora como timestamps do UNIX para que possa executar matemática neles)

$ date +%s
1299273353
$ date -d @1299273353
Fri Mar  4 15:15:53 CST 2011

O arroba informa ao comando date que o número é um timestamp do UNIX

    
por 04.03.2011 / 22:16

Tags