Pessoal tenho um método que recebe uma data no formato string assim: 2016-09-05T12:13:25Z
Meu problema é que quando converto para java o horário fica errado. Com varias horas de diferença.
Qual o jeito certo de converter isso?
String string = "2016-09-05T12:13:25Z";
String defaultTimezone = TimeZone.getDefault().getID();
Date date = (new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ", new Locale("pt", "BR"))).parse(string.replaceAll("Z$", "+0000"));
System.out.println("string: " + string);
System.out.println("defaultTimezone: " + defaultTimezone);
System.out.println("date: " + (new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ", new Locale("pt", "BR"))).format(date));
eu estou com um problema ao contrario eu gravo tudo certinho mais quando ele me retorna, retorna a data 2016-02-02 como eu faço para ele me retornar 02-02-2016 ou 02/02/2016 ?
Lembrando de quando eu falo em retornar é retornar do Banco de Dados (Firebird)
Pessoal obrigado pelas respostas, o problema era o replace mesmo citado pelo campelo.m.
Eu imaginei que a configuração de fuso horário era através somente do new Locale(“pt”, “BR”).
O retorno do firebird é assim por que é o padrao dele.
Você deve fazer a mesma coisa que o @roglusa, você tem que usar o SimpleDateFormat. (new SimpleDateFormat("dd/MM/yyyy", new Locale("pt", "BR"))).format(new Date())
certo mais eu não sei como devo incrementar no código !
tmParcelaAReceber.addRow(campos);
tmParcelaAReceber.setValueAt(modelParcelaARecebes.get(i).getCOD_ID(), i, 0);
tmParcelaAReceber.setValueAt(modelParcelaARecebes.get(i).getQNT_PARCELA(), i, 1);
tmParcelaAReceber.setValueAt(modelParcelaARecebes.get(i).getDATA_PARCELA_ARECEBER(), i, 2);