Muuito estranho, tavez eu esteja usando o Calendar incorretamente:
Eu quero procurar todos os registros de um dia inteiro, faço dessa forma:
Calendar calendarInitial = new GregorianCalendar();
calendarInitial.setTime( new Date() );
calendarInitial.set( Calendar.HOUR , 0 );
calendarInitial.set( Calendar.MINUTE , 0 );
calendarInitial.set( Calendar.SECOND , 0 );
Calendar calendarFinal = new GregorianCalendar();
calendarFinal.setTime( new Date() );
calendarFinal.set( Calendar.HOUR , 23 );
calendarFinal.set( Calendar.MINUTE , 59 );
calendarFinal.set( Calendar.SECOND , 59 );
E no Criteria do Hibernate faço:
criteria.add( Expression.ge( "dateRegister" , calendarInitial.getTime() ) );
criteria.add( Expression.le( "dateRegister" , calendarFinal.getTime() ) );
Ele pega os registros do dia anterior desde as 12 horas (meio dia) até às 12 horas (meio dia) de hoje. É muito estranho. pra funcionar corretamente tenho que fazer assim:
Calendar calendarInitial = new GregorianCalendar();
calendarInitial.setTime( new Date() );
calendarInitial.set( Calendar.HOUR , -12 );
calendarInitial.set( Calendar.MINUTE , 0 );
calendarInitial.set( Calendar.SECOND , 0 );
Calendar calendarFinal = new GregorianCalendar();
calendarFinal.setTime( new Date() );
calendarFinal.set( Calendar.HOUR , 12 );
calendarFinal.set( Calendar.MINUTE , 0 );
calendarFinal.set( Calendar.SECOND , 0 );
Isso no SQLServer, usando o driver da Microsoft…
É normal isso? Estou usando o Calendar corretamente??
Obrigado…