1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

RESTful - Data com fuso horário diferente no servidor.

Antes de ontem postei a mesma duvida e pensei que tinha conseguido resolve-la pois os testes locais no TomCat funcionaram, porém eu estava enganado e o problema persiste no servidor remoto.

O problema é o seguinte: Tenho uma aplicação cliente e um web service em rest, ambos em java. Eles se comunicam via JSON e para tal utilizo as bibliotecas jersey, jackson e gson. Acontece que o servido está hospedado em uma maquina nos EUA, e quando eu envio uma data do cliente para o servidor, ela é convertida para o fuso-horário da maquina (algumas horas antes do que o meu fuso-horario) e isso está me causando um problema pois quando a data é devolvida, essa adaptação ao fuso-horário não ocorre. Ou seja, se eu envio a data 10/03/2015, ela chega ao servidor como 09/03/2015 e quando é devolvida para mim, vem como 09/03/2015. Já tentei setar uma TimeZone no meu ObjectMapper, já tentei setar um DateFormat com uma TimeZone, já tentei utilizar a classe calendar, já tentei utilizar o DateTime do joda, já procurei na documentação, rodei o stack overflow de cima a baixo e não encontrei solução.

Preciso de uma resposta urgentíssima de como resolver isso e o único lugar que posso recorrer é aqui.

Sintetizando: Envio a data com o fuso de SP, ela chega ao servidor e provavelmente o fuso é alterado e eu preciso que ou ela chegue com o fuso de SP e seja gravada assim, ou que no retorno ela receba o fuso correto.

Se precisarem de SSCE ou qualquer outra coisa para me ajudar, por favor avisem.

Agradeço desde já.


ATUALIZAÇÃO

Cole um selo de Burro na minha testa.

Acabei de fazer um teste: Enviei a data e retornei da maneira como ela é recebida pelo servidor e adivinhem? Ela chega da maneira correta. O problema acontece na hora de converte-la para o maldito do java.sql.Date pois eu dei um sysOut na data e na data convertida e é esse o resultado:

data     - 2015-09-04T03:00:00.000Z   
data sql - 2015-09-03

O problema agora é outro: Como converter a uma data, ou melhor, um timestamp em java.sql.Date sem perder o fuso?

Vou pesquisar aqui e assim que conseguir dou a resposta aqui mesmo.

Obrigado a você que se dispôs a ajudar.

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags rest jaxws jersey json java java-ee ou faça a sua própria pergunta.