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.