[Java] Converter de String para Calendar e Calendar para String

Mais um post rápido, e dessa vez sobre o uso de datas em Java.

Indo direto ao ponto…

Vou mostrar um código simples para transformar uma String em Calendar e transformar um Calendar em String.


//de STRING para CALENDAR

try {

SimpleDateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy");

String data = "21/12/2012";

Calendar c = Calendar.getInstance();

c.setTime(formatoData.parse(data));

} catch (Exception e) {}


//de CALENDAR para STRING

try {

SimpleDateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy");

String retorno="";

Calendar hoje = new GregorianCalendar();

retorno = formatoData.format(hoje.getTime());

System.out.println(retorno);

} catch (Exception e) {}

Mas tem um detalhe importante que precisa ser observado, e que inclusive apanhei bastante quando mechi nisso pela primeira vez. No primeiro exemplo, passei uma string “21/12/2012” e a transformei em Calendar, tudo certo até aí. Mas e se eu passar uma string “32/12/2012”? Essa data não existe, (primeiro porque o mundo vai acabar no dia 21/12, e depois porque o mês 12 só tem 31 dias) mas a conversão aceita esta data e a “converte para uma data válida”. Sendo assim, se você passa a string “32/12/2012” o objeto Calendar resultante da conversão terá a data 01/01/2013. Não sei se isso é um bug de implementação ou se os desenvolvedores realmente quiseram deixar assim por algum motivo específico, mas o fato é que muitas vezes isso não é interessante.

Para fazer o teste, rode o código a seguir:


try {

SimpleDateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy");

String data = "32/12/2012";

Calendar c = Calendar.getInstance();

c.setTime(formatoData.parse(data));

String retorno="";

retorno = formatoData.format(c.getTime());

System.out.println(retorno);

} catch (Exception e) {}

InTé+!

2 comments so far

  1. Mah on

    Gostei muito bom e bem fácil de entender! ^^ Valeu!


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: