Setar hora diferença

Estou tentando setar no campo hora 12:00, mas ele recebe 15:00.

Segue abaixo o codigo:

setHora(new SimpleDateFormat("HH:mm", new Locale("pt", "BR")).parse("12:00"));

Tem algo errado?

Resolvido

E como foi resolvido?

Desculpe. achei que tinha resolvido mas não tinha, o problema persiste

não sei mais o que faço, o horário esta GMT-03:00, o time zone São Palo, o horário do pc está correto, mas sempre que eu busco a hora do sistema ele joga duas horas a mais

[quote=pauloph10]não sei mais o que faço, o horário esta GMT-03:00, o time zone São Palo, o horário do pc está correto, mas sempre que eu busco a hora do sistema ele joga duas horas a mais
[/quote]
Horário de verão :shock: ???

Se eu ajustar o relogio para não aplicar o horario de verão aí a diferença sobe pra 3 horas

help

Olhando aqui consegui imprimir a hora certa:

 Date data = new Date();
System.out.println(new SimpleDateFormat("dd/MM/yyyy HH:mm").format(data));


Aqui imprime 02/12/2011 14:00

mas se ao inves de imprimir essa string com a hora, eu associar essa data com meu componente fica duas horas a mais ex:

setando no MBean
setDataChegada = new Date();


Meu componente no XHTML
<p:inputMask value="#{hospedagemMB.hospedagem.dataChegada}" mask="99/99/9999 99:99">
                            <f:convertDateTime pattern="dd/MM/yyyy HH:mm"></f:convertDateTime>
 </p:inputMask>

Aqui imprime 02/12/2011 16:00

Será que o problema é no converter?

Resolvi fazer meu proprio converter para testar:

public class DateTimeConverterCustom implements Converter{

    public Object getAsObject(FacesContext arg0, UIComponent arg1, String data) throws ConverterException {
       if(data==null){
          return null;
       } else {
             DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy HH:mm");  
            Date date = null;  
            try {
                date = (Date)formatter.parse(data);
            } catch (ParseException ex) {
                Logger.getLogger(DateTimeConverterCustom.class.getName()).log(Level.SEVERE, null, ex);
            }
        
          return date;
       }

   }


   public String getAsString(FacesContext arg0, UIComponent arg1, Object data) throws ConverterException {

       if(data==null){
       return "";
       }
        else {
           Date dtb = (Date)data;
           System.out.println("TESTEEEEE:" +dtb); //Isso imprime com duas horas a mais ou seja a hora vai certa, mas no converter fica com duas a mais 
          String dt ;
            dt = new SimpleDateFormat("dd/MM/yyyy HH:mm").format(data);
            return dt;
       }
   }
 
}
       System.out.println("TESTEEEEE:" +dtb); //Isso imprime com duas horas a mais ou seja a hora vai certa, mas no converter fica com duas a mais. Não sei mais o que fazer.

AGORA SIM RESOLVIDO: Vou te contar viu é cada uma! olha só a solução:

  • Setar o horario da máquina pra outro fuso de outro continente e depois voltar para o GMT-03:00 ou UTC-03:00.