Ontem eu estava apanhando para fazer formatação de data no Velocity (leia o que é Velocity?) para um template e antes de implementar uma POG com vários elseif´s, pedi uma ajuda para o Chris para saber se já existia alguma classe ou função disponível para formatação de datas em texto (em número já estava funcionando).
Danger!
Antecipo que qualquer coisa relacionada a Java ainda é uma novidade para mim, escrevi este post baseado na documentação da Sun (de uma classe) mas mesmo assim caso tenha alguma bobagem no conteúdo comentem, a internet está aí para possibilidades de correção e melhoria do conteúdo! 😉
O Chris me enviou um ótimo link de referência sobre a classe SimpleDateFormat do Java (me corrijam se estiver errado), que como o nome diz é para formatação de datas.
Não acho necessário a tradução da tabela, o funcionamento é simples: ao chamar a função para formatar data você segue os padrões indicado pela primeira coluna, que irá retornar o elemento indicado pela segunda coluna.
Letter | Date or Time Component | Examples |
---|---|---|
G |
Era designator | AD |
y |
Year | 1996 ; 96 |
M |
Month in year | July ; Jul ; 07 |
w |
Week in year | 27 |
W |
Week in month | 2 |
D |
Day in year | 189 |
d |
Day in month | 10 |
F |
Day of week in month | 2 |
E |
Day in week | Tuesday ; Tue |
a |
Am/pm marker | PM |
H |
Hour in day (0-23) | 0 |
k |
Hour in day (1-24) | 24 |
K |
Hour in am/pm (0-11) | 0 |
h |
Hour in am/pm (1-12) | 12 |
m |
Minute in hour | 30 |
s |
Second in minute | 55 |
S |
Millisecond | 978 |
z |
Time zone | Pacific Standard Time ; PST ; GMT-08:00 |
Z |
Time zone | -0800 |
Tabela da classe SimpleDateFormat (site da Sun)
Dicas para formatação e exibição das datas
Ainda existe algumas dicas para selecionar como será exibido o resultado, por extenso, número ou texto. Segue uma explicação rápida e algumas dicas para formatar e exibir a data:
Texto
Para formatar o texto, se a letra do padrão se repetir 4 vezes ou mais, a forma completa é utilizada, caso contrário a forma abreviada é exibida (se existir).
Número
Para a formatação, o número de repetição da letra padrão (primeira coluna da tabela) indica o número mínimo de dígitos do número, as casas que "faltaram" são preenchidas com zeros.
Year (ano)
Para a formatação, 2 repetições da letra truncam o ano para 2 dígitos.
Mês
Se a letra repetir por 3 vezes ou mais é exibido como texto, caso contrário como número.
Exemplos
Acho que a formatação de data é complicada de explicar, mas com exemplos -> resultados prontos fica masi fácil, então segue uma tabelinha que utiliza os padrões SimpleDateFormat.
Date and Time Pattern | Result |
---|---|
"yyyy.MM.dd G "at" HH:mm:ss z" |
2001.07.04 AD at 12:08:56 PDT |
"EEE, MMM d, ""yy" |
Wed, Jul 4, "01 |
"h:mm a" |
12:08 PM |
"hh "o""clock" a, zzzz" |
12 o"clock PM, Pacific Daylight Time |
"K:mm a, z" |
0:08 PM, PDT |
"yyyyy.MMMMM.dd GGG hh:mm aaa" |
02001.July.04 AD 12:08 PM |
"EEE, d MMM yyyy HH:mm:ss Z" |
Wed, 4 Jul 2001 12:08:56 -0700 |
"yyMMddHHmmssZ" |
010704120856-0700 |
Tabela da classe SimpleDateFormat (site da Sun)
É isso, espero ter ajudado! Para mais informações sobre formatação de data no Java leia a documentação completa da classe citada neste post.