Converter número do mês para o nome do mês

2

existe uma maneira de converter o número do mês em nome?

exemplo:

2013-10-22 será 22 de outubro

Eu não tenho a data GNU e meu SO é AIX.

    
por peja11 31.10.2013 / 11:42

3 respostas

2

se você precisar mapear apenas algumas chaves para valores, basta usar uma matriz

#!/bin/ksh

## cmdline argument is e.g. "2003-10-22"
DATE=$1

### extract day, month and year into separate variables
MONTHDAY=${DATE#*-}

YEAR=${DATE%%-*}
MONTH=${MONTHDAY%%-*}
DAY=${MONTHDAY#*-}

# an array to look up th month-names
# since month-numbers start with 1, the first element in the array is invalid.
set -A monthnames invalid Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec

## perform the lookup
MONTHNAME=${monthnames[${MONTH}]}

## display "<Month> <DAY>"
echo ${MONTHNAME} ${DAY}
    
por 31.10.2013 / 12:00
2

Com uma versão recente suficiente de ksh :

$ printf "%(%a %b %d %Y)T\n" 2013-10-22
Tue Oct 22 2013

(note que é localmente ciente, em uma localidade espanhola, por exemplo, irá produzir mar oct 22 2013 )

    
por 31.10.2013 / 14:03
1

GNU date :

$ date -d 2013-10-22 '+%b %-d'
Oct 22

OS X e FreeBSD date :

$ date -jf %F 2013-10-22 '+%b %-d'
Oct 22

%b é um nome de mês abreviado e %B é um nome completo de mês.

    
por 25.04.2014 / 12:20