Fuso Horário

Olá, pessoal.
Tudo bom com vocês?
Galera, estou tendo um probleminha com fuso horário.
Meu sistema trás um horário 11:20, por exemplo, mas mostra 13:20.
Imagino então que esteja sendo aplicado um fuso brasileiro.
Mas eu não entendi muito bem pq parece que ele só aplica esse fuso horário na camada view.
Na DAO, ele traz 11 horas, no controller, antes de enviar pra view ainda está como 11hs, mas ele mostra 13hs na view.
Alguem já passou por algum problema parecido?
Vi outros tópicos relacionados, mas era um pouco diferente do meu caso.
Alguma ideia?

Grande abraço a todos!

Você poderia adicionar no seu web.xml para trazer o horário local de quem está acessando.

    <context-param>  
      <param-name>javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE</param-name>  
      <param-value>true</param-value>  
    </context-param>

Estou usando JSF 2 e Hibernate

O campo em questão está definido no modelo da seguinte forma:

@Temporal(TemporalType.TIMESTAMP) private Date dataChamada;

Como está sua view? Mostra o trecho onde você mostra a data.

Olá, André.
Não tinha visto sua msg.
Obrigado pela ajuda.

O sistema é para controle de ligações internas.
Controlar tarifa e tudo o mais.
Eles já tem um sistema pra esse controle.
O meu sistema seria para resgatar a gravação dessas ligações.
Então a hora do meu sistema tem que bater com a hora desse sistema deles.
o deles está batendo com o horário de 11hs (no exemplo que dei), mas o meu está mostrando a mesma ligação com 2 horas a mais, ou seja, 13hs.

Não sei se consegui explicar direito…

Olá, Raminelli.
Obrigado pela atenção.

Segue o trecho:

<p:column sortBy="#{chamada.dataChamada}"> <f:facet name="header">Data</f:facet> <h:outputText value="#{chamada.dataChamada}"> <f:convertDateTime pattern="dd/MM/yyyy" /> </h:outputText> </p:column>

Tenta assim:

    &lt;p:column sortBy="#{chamada.dataChamada}"&gt;  
        &lt;f:facet name="header"&gt;Data&lt;/f:facet&gt;  
        &lt;h:outputText value="#{chamada.dataChamada}"&gt;  
           &lt;f:convertDateTime pattern="dd/MM/yyyy HH:mm" locale="pt_br" timeZone="America/Sao_Paulo"/&gt;
        &lt;/h:outputText&gt;  
    &lt;/p:column&gt;  

Então, cara. Mas o que eu quero é justamente que ele não aplique timeZone.
Quero que continue o mesmo horário que está trazendo, entendeu?
Ele está buscando 11hs, como eu disse, então eu quero que ele continue mostrando 11hs e não 13hs como está fazendo.

Sacou?

Só corrigindo um negócio.
O campo em questão na view é o seguinte:

<h:outputText value="#{chamada.dataChamada}"> <f:convertDateTime pattern="HH:mm:ss" /> </h:outputText>

Eu pus o de data, mas o campo que eu estava falando mostra apenas hora, minuto e segundo da ligação.

Raminelle,

Eu apliquei o que você sugeriu no campo certo (eu havia postado o campo errado), modifiquei o pattern (de data pra hora) e funcionou.
Mas eu não entendi muito bem o que o JSF faz, cara.
Ele estava trazendo 11 horas, mas estava mostrando 13hs.
Achei que era pq ele estava aplicando o fuso horario brasileiro e, por isso, estava acrescentando 2 horas (diferença entre brasil e eua).
Mas aí vc falou pra eu definir locale e timezone daqui e ele buscou 11 e mostrou 11, que é o correto.

Sabe me explicar mais ou menos o porquê disso, cara?

Seria muito legal poder entender o que aconteceu.

Você chegou a testar que enviei?

Ele vai mostrar como está no banco 11:00, pois o problema está na view.

só postando aqui resultado.
pra ajudar possiveis pessoas com o mesmo problema:
no banco, o registro estava com 11hs.

O código da minha view era:

<h:outputText value="#{chamada.dataChamada}"> <f:convertDateTime pattern="HH:mm:ss" /> </h:outputText>

E estava mostrando 13 hs.

Para resolver, fiz o que nosso amigo RRaminelli sugeriu.
O código ficou assim:

<h:outputText value="#{chamada.dataChamada}"> <f:convertDateTime pattern="HH:mm:ss" locale="pt_br" timeZone="America/Sao_Paulo"/> </h:outputText>

e passou a mostrar a hora correta (11hs)

Vi sua mensagem agora.

Na verdade não é um problema, é que a tag <f:convertDateTime pattern=“HH:mm:ss” /> formata com o timezone padrão que é o americano.

Rapaz…
Sinto que estou sendo muito estúpido.
Mas se a tag formata com padrão americano, a view não deveria mostrar 9hs ao invés de 13?
Pq se está trazendo do banco 11hs, aplicando um fuso americano ficaria com 2 hs a menos, não?

Na verdade ele pega o timezone da VM do servidor… no caso pensei que o seu estive em inglês. Certo?

Bom… Estou rodando local e o timezone da JVM está como “America/Sao_Paulo”
o.O