Data com dia anterior chamada REST

6 respostas
E

Olá!

Estou com seguinte problema depois de passar uma lista de objetos em uma chamada Rest.

Minha lista está sendo passada normalmente com os dados coerentes, EXCETO um campo de data.

Esse campo de data está sendo passado no seguinte formato.

2015-11-25

O sistema que recebe essa lista de objetos está recebendo o campo de data no seguinte formato.

Tue Nov 24 21:00:00 ART 2015 Sempre no dia anterior e com hora.

Alguém tem uma ideia ou sujestão do que pode estar ocorrendo.

6 Respostas

Aledro

Se você estiver utilizando JSF e o atributo for Date, use o recurso timeZone=“GMT-03:00”.
f:convertDateTime pattern=“dd/MM/yyyy HH:mm” timeZone=“GMT-03:00”/>
Ou troque o Date por LocalDateTime, se estiver usando o java 8.

E

Obrigado pela resposta Aledro, vou fazer o teste e posto o resultado. Mas não entendi o porque desse problema ainda…

Aledro

Cara, o horário é pego no sistema operacional e as vezes atualizado automaticamente através de um servidor fora do Brasil, mas apresenta a hora correta através do GMT, mas a VM não recebe essa informação e te passa a hora como ela está internamente. Quando você aponta o GMT ou usando o LocalDateTime a informação é apresentada de maneira correta.

E

Ok,
No meu caso eu não estou pegando pelo JSF e sim pelo banco. Pego os valores do banco e passo como parametro.

Aledro
Então tenta utilizar:

TimeZone timeZone1 = TimeZone.getTimeZone(America/Sao_Paulo);

calendar.setTimeZone(timeZone1);
E

Aledro, foi isso mesmo cara.

Fiz dessa forma antes de passar como argumento e deu certo!

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
         sdf.setTimeZone(TimeZone.getTimeZone("GMT-3"));

for (Documento : documentoBO.obterEstado(documento.getFilialRecepcao().getCodigo(), codigoProdutos)) {
            dados.setData(sdf.parse(sdf.format(dados.getDataUltimaEntrada())));
            dadosParaProcessar.add(dados);
        }
Criado 21 de dezembro de 2015
Ultima resposta 21 de dez. de 2015
Respostas 6
Participantes 2