Estou com um problema, e gostaria de saber se vc pd me ajudar.
Estou desenvolvendo um sistema para Windows Mobile e utilizo a JVM livre Mysaifu.
Acontece que, após a mudança no horário de verão a hora gravada não corresponde mais a mostrada no display do pda, pegando sempre a data normal anterior a hora de verão.
A forma como recupero a hora mostro no código abaixo:
public void salvarEntrada(String cracha) {
PreparedStatement pstmt;
ResultSet rs = null;
try {
TimeZone tz = TimeZone.getTimeZone("America/Sao_Paulo");
TimeZone.setDefault(tz);
Calendar ca = GregorianCalendar.getInstance(tz);
SimpleDateFormat horaInicial = new SimpleDateFormat("HH:mm");
pstmt = Conexao.getInstance().getConnection().prepareStatement("update turma set hentrada = ? where numero = ?");
String numero = cracha.substring(0 , 2);
pstmt.setString(1,horaInicial.format(ca.getTime()));
pstmt.setString(2 , numero);
pstmt.executeUpdate();
Conexao.getInstance().getConnection().commit();
}
Tentei utilizar algo como o código abaixo para tentar resolver, mais não deu certo, o Mysaifu não possui a classe ZoneInfoFile:
package br.com.fitsistemas.horario;
import java.lang.reflect.Field;
import java.util.Date;
import java.util.TimeZone;
import sun.util.calendar.ZoneInfoFile;
public class HorarioVerao {
public static void main(String[] args) {
Field field;
try {
// aqui utilizo reflection para conseguir acessar e alterar um
// atributo privado
field = ZoneInfoFile.class.getDeclaredField("zoneInfoObjects");
field.setAccessible(true);
// esse ? um atributo static, que corresponde a uma Collection que ?
// ent?o "apagamos" o cache :-)
field.set(null, null);
// default (obtido atrav?s do S.O.)
TimeZone.setDefault(null);
// "truque" n?o ir? funcionar
System.out.println(new Date());
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
Por favor se vcs puder me ajudar ficarei muito grato.
Obrigado
Maurício