Converter um formato de data

1

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:

  • Formato1: 24/01/2014
  • Formato2: 24 de janeiro

Como posso fazer isso?

    
por guest 27.01.2014 / 08:15

3 respostas

7

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
    
por 27.01.2014 / 08:24
1

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"
    
por 27.01.2014 / 11:17
0

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
    
por 25.04.2014 / 08:05