Problema Timezone

Olá pessoal

Estou com um problema e não achei uma maneira clara e eficiente de resolver...
Tem uma aplicação feita em jsf 2.0 que se conecta a múltiplos servidores mysql, até ao tudo bem, porém os servidores estão com timezone gmt+0, e na minha app preciso formatar a data de acordo com o timezone do usuário (pois terá usuários de vários países)... então de acordo com o esse timezone ele teria que adicionar ou diminuir algumas horas...

Como posso fazer isso?
É possível com um <f:convertDateTime ?

Você vai precisar que o usuário diga o timezone dele no cadastro,a partir dai voce pode utilizar as funções de timezone com base no que o usuário passou

por ex:


 SimpleDateFormat isoFormat = new SimpleDateFormat("dd/MM/yyyy' 'HH:mm:ss");
    isoFormat.setTimeZone(TimeZone.getTimeZone(User.getTimeZone()));
    Date date = isoFormat.parse("23/12/2012 09:01:02");

pode tentar direto também no componente do jsf:

exemplo no stack overflow:

&lt;h:outputText value="#{atividade.atividade.dataCriacao.time}"&gt;
  &lt;f:convertDateTime pattern="#{msg.formatoDataCalendario2}" timeZone="#{bean.clientTimeZone}" /&gt;
&lt;/h:outputText&gt;

http://stackoverflow.com/questions/7490954/set-a-default-timezone-for-fconvertdatetime

veja se funciona

<f:convertDateTime timeZone="GMT+0"/>

Olá fabiozanardi,
O timezone eu já consegui identificar… mas o <f:convertDateTime não retorna o resultado que espero. Agora decidi mudar de estratégia, irei tentar setar o timezone na aplicação que armazena os dados no mysql, assim o app jsf irá obter a data correta …

Por exemplo, um usuário com GMT-3 acessa a aplicação e faz uma alteração, no mysql irá constar uma data (no log) com 3 horas a mais… se o mesmo usuário ir na minha app ela irá mostrar a data que consta no mysql (servidor GMT+0) ou a data equivalente para o usuário GMT-3?

Desculpe não ter testado ainda mas é que fiz algumas alterações aqui…

[quote=fabiozanardi]pode tentar direto também no componente do jsf:

exemplo no stack overflow:

&lt;h:outputText value="#{atividade.atividade.dataCriacao.time}"&gt;
  &lt;f:convertDateTime pattern="#{msg.formatoDataCalendario2}" timeZone="#{bean.clientTimeZone}" /&gt;
&lt;/h:outputText&gt;

http://stackoverflow.com/questions/7490954/set-a-default-timezone-for-fconvertdatetime

veja se funciona[/quote]

Eu usei:

&lt;f:convertDateTime type="both" dateStyle="short" locale="#{profile.locale}" /&gt; mais o timezone (que não ta ai)… e não funcionou

Não deu certo :frowning:

Mas de qualquer forma obrigado pela rápida resposta, vou tentar aquela segunda alternativa que comentei anteriormente.

Valew pessoal !