Para formatarmos elementos de uma data é necessário o uso do DateFormat, podemos com ela definir a forma como queremos que seja exibido uma determinada data, por exemplo: “dia/mês/ano” ou “ano-mês-dia”, podemos também converter uma data para texto e vice versa independente da posição geográfica, Internamente DateFormat o número de milissegundos decorridos desde 01/01/1900.

A Classe DateFormat não traz métodos adequados para conversão para texto, mas isso pode ser sanado com o uso de SimpleDateFormat.

Veja exemplos abaixo:


package javaapplication1;
 import java.text.DateFormat;
 import java.util.Date;
 /**
 * @author claudios
 */
 public class Main {
  /**
  * @param args the command line arguments
  */
  public static void main(String[] args) {
  // Imprime a data no formato Padrão
  System.out.println(DateFormat.getDateInstance().format(new Date())); 
  }
 }
 package javaapplication1;
 import java.text.DateFormat;
 import java.util.Date;
 /**
 * @author claudios
 */
 public class Main {
  /**
  * @param args the command line arguments
  */
  public static void main(String[] args) {
  // Imprime a data no formato curto
  System.out.println(DateFormat.getDateInstance(DateFormat.SHORT).format(new Date()));
  
  
  }
 }
 package javaapplication1;
 import java.text.DateFormat;
 import java.util.Date;
 /**
 * @author claudios
 */
 public class Main {
  /**
  * @param args the command line arguments
  */
  public static void main(String[] args) {
  // Imprime a data no formato medio
  System.out.println(DateFormat.getDateInstance(DateFormat.MEDIUM).format(new Date())); 
  }
 }
 package javaapplication1;
 import java.text.DateFormat;
 import java.util.Date;
 /**
 * @author claudios
 */
 public class Main {
  /**
  * @param args the command line arguments
  */
  public static void main(String[] args) {
  // Imprime a data no formato longo
  System.out.println(DateFormat.getDateInstance(DateFormat.LONG).format(new Date()));
  }
 }
 package javaapplication1;
 import java.text.DateFormat;
 import java.util.Date;
 /**
 * @author claudios
 */
 public class Main {
  /**
  * @param args the command line arguments
  */
  public static void main(String[] args) {
  // Imprime a data no formato completo
  System.out.println(DateFormat.getDateInstance(DateFormat.FULL).format(new Date()));
  }
}

O Resultado deveram se parecer com os que são mostrados abaixo :


  * 31/05/2007
  * 31/05/07
  * 31/05/2007
  * 31 de Maio de 2007
  * Quinta-feira, 31 de Maio de 2007

Formatação Personalizada

A classe SimpleDateFormat possibilita que você possa fornecer uma String de formatação para data/hora com letras que tem significados especiais como mostra a Tabela 1.

Símbolo Significado Exemplo

G

Y

Yyyy

M

MMM

MMMM

w

W

D

d

F

E

EEEE

a

H

k

K

h

m

s

S

z

Z

Era

Ano

Ano

Mês do ano

Mês do ano

Semana do ano

Semana do mês

Dia do ano

Dia do mês

Dia do ano

Dia do mês

Dia da semana no mês

Dia da semana

Dia da semana

AM/PM

Hora (0-23)

Hora do dia(1-24)

Hora am/pm(0-11)

Hora am/pm(1-12)

Minuto

segundo

time zone

time zone (RFC 822)

DC

04

2004

02

Fev

Fevereiro

12

3

77

17

3

Qua

quarta-feira

PM

19

19

7

7

17

16

16

BRT

-0300

O uso de SimpleDateFormat permite também o uso de formatos personalizados, veja o exemplo abaixo:


package javaapplication1;
 import java.text.*;
 import java.util.Date;
 /**
  * @author claudios
 */
 public class Outra {
  public Outra() {
  }
  
  public static void main(String args[]){
  System.out.println(new SimpleDateFormat("dd 'de' MMMM 'de' yyyy").format(new Date()));
  // Resultado é : 31 de Maio de 2007
  }
  
}

Caso seja preciso inserir algum texto dentro do texto de formação deve-se utilizar apóstrofos como delimitadores.

Por hoje é só pessoal em breve voltaremos com mais exemplos de formatação, não apenas de data, mas também de formatos monetários.