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