Pessoal, estou com um problema assim:
Eu crio uma instancia de GregorianCalendar e seto os valores de dia, mes, ano, hora, minuto e segundo. Seto sempre hora meio dia porque tive problemas com o horário de verão.
GregorianCalendar calendar = new GregorianCalendar();
calendar.set(GregorianCalendar.YEAR, ano);
calendar.set(GregorianCalendar.HOUR, 12);
calendar.set(GregorianCalendar.MINUTE, 0);
calendar.set(GregorianCalendar.SECOND, 0);
calendar.set(GregorianCalendar.MONTH, mes);
calendar.set(GregorianCalendar.DAY_OF_MONTH, dia);
Depois eu tenho uma classe que é o mapeamento de uma tabela do banco. Ela tem um método para setar uma data, nele eu passo o objeto que criei anteriormente. No banco esse campo é um timestamp(6).
Fica assim:
Session hSession = sf.openSession();
Transaction tx = hSession.beginTransaction();
MinhaTabela t = new MinhaTabela ();
t.setDtTrabalho(calendar.getTime());
//seta outros campos...
hSession.saveOrUpdate(t);
tx.commit();
hSession.close();
Depois eu olho no banco e vejo que todos os objetos foram inseridos, mas, eles não estão com a hora que eu queria que eles estivessem. Depois, quando tento carregar esses dados e crio um objeto date a hora vem bangunçada e, dependendo do dia, ele acrescenta um dia (por conta do horário de verão).
Alguém sabe porque esses dados não vão para o Oracle com hora meio dia??
Obrigada.