Bom dia, não estou conseguindo de forma alguma setar a hora de uma determinada Date como 00:00, ele sempre fica como 01:00
O meu codigo está assim:
Date d=new SimpleDateFormat("dd/MM/yyyy").parse("21/10/2012");
GregorianCalendar c=new GregorianCalendar();
c.setTime(d);
c.set(Calendar.HOUR_OF_DAY, 0);
d=new Date(c.getTimeInMillis());
java.sql.Date dd=new java.sql.Date(c.getTimeInMillis());
System.out.println(d);
O gregorian calendar até chega a ficar com a hora 0, mas quando boto o valor de volta pra data ele fica com a hora 1.
Alguem tem a solução pra isso?
Estou enfrentando esse problema em alguns clientes desde o dia 21, que foi quando começou o horario de verão…
Encontrei um[color=yellow]a gambiarra[/color] código na internet que informa a jvm sobre as regras do horario de verão:
TimeZone.setDefault(
new SimpleTimeZone(
TimeZone.getDefault().getRawOffset(),
"America/Sao_Paulo",
Calendar.OCTOBER, //mes de inicio
21, //dia de inicio
0,
3600000*1+60000*0, // hora de inicio
Calendar.FEBRUARY,//mes de fim
17, //dia de fim
0,
3600000*2+60000*0, // hora de fim
3600000));
Assim aparentemente funcionou, esta mostrando a hora certa… Mas não sei se esse é o jeito certo de tratar isso, ou se vai me trazer mais problemas mais pra frente.
[quote=igor_ks]Ueh, mas se timezone SaoPaulo, que dizer que os clientes sao brasileiros certo?
Aqui no Brasil nao tivemos o horario de 00:00 a 01:00 desse dia…[/quote]
Na verdade não sei qual foi a hora que iniciou, então deixei essa hora mesmo, mas foi nesse dia 21/10 e vai terminar dia 17/02.