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'
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?
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'
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))"