Usando o GNU date
. Do formato 1 a 2:
LC_ALL=C date --date=1/24/2014 +"%b %-d"
Jan 24
E de 2 a 1:
date --date="Jan 24" +"%-m/%-d/%Y"
1/24/2014
Eu tenho um problema com o meu formato de data. Eu quero mudar de um formato para o outro e vice-versa. Meus formatos de data são:
Como posso fazer isso?
Usando o GNU date
. Do formato 1 a 2:
LC_ALL=C date --date=1/24/2014 +"%b %-d"
Jan 24
E de 2 a 1:
date --date="Jan 24" +"%-m/%-d/%Y"
1/24/2014
Usando ksh93
:
$ printf "%(%-m/%-d/%Y)T\n" "Jan 24"
1/24/2014
$ LC_ALL=C printf "%(%b %-d)T\n" 1/24/2014
Jan 24
Portavelmente
d=1/24/2014
echo "$d:Jan1:Feb2:Mar3:Apr4:May5:Jun6:Jul7:Aug8:Sep9:Oct10:Nov11:Dec12:" |
sed -n 's|^0*\([0-9]\{1,2\}\)/0*\([0-9]\{1,2\}\)/.*:.*\(...\):.*| |p'
d='Jan 24'
echo "$d:Jan1Feb2Mar3Apr4May5Jun6Jul7Aug8Sep9Oct10Nov11Dec12" |
sed -n "s|^\(...\) 0*\([0-9]\{1,\}\).*\([0-9]*\).*|//$(date +%Y)|p"
FreeBSD e OS X date
:
$ LC_ALL=C date -jf '%b %d' 'Jan 24' +%-d/%-m/%Y
24/1/2014
$ LC_ALL=C date -jf %d/%m/%Y 24/1/2014 '+%b %-d'
Jan 24
Tags command-line date