Exibindo uma data específica

2

Estou tentando exibir uma data específica no Unix, usando o comando date, não consigo descobrir como exibir uma data diferente da data de hoje.

Por exemplo, se eu estivesse tentando exibir July 4, 2011 , use

$ date +"%B %d, %Y"

Mas continuo recebendo a data de hoje nesse formato. Como posso alterá-lo para exibir a data desejada?

    
por user32270 13.02.2013 / 04:29

2 respostas

4

Se você estiver executando o Linux:

date +"%B %d, %Y" -d 2011-07-04

Em man date :

   -d, --date=STRING
          display time described by STRING, not 'now'
    
por 13.02.2013 / 04:33
2

Geralmente, date não é a ferramenta para isso (embora algumas implementações, como a data GNU, possam fazer isso como uma extensão não padrão).

Se você deseja fazer a manipulação de data de forma portável, o melhor que você pode fazer é usar perl (que é instalado em praticamente todos os Unix não incorporados) e seu módulo POSIX para strftime e mktime funções. Existe uma infinidade de outros módulos de manipulação de datas mais amigáveis para perl , mas eles geralmente não seriam instalados por padrão, pelo menos não com versões mais antigas de perl .

perl -MPOSIX -le 'print strftime "%B %d, %Y", @ARGV' 0 0 0 4 7 "$((2011 - 1900))"
    
por 13.02.2013 / 08:02

Tags