Tenho o seguinte código para pegar a data e hora do sistema:
Date sysdate = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(sysdate);
String dia = String.valueOf(cal.get(Calendar.DAY_OF_MONTH));
String mes = String.valueOf(cal.get(Calendar.MONTH)+1);
String ano = String.valueOf(cal.get(Calendar.YEAR));
String horas = String.valueOf(cal.get(Calendar.HOUR_OF_DAY));
String minutos = String.valueOf(cal.get(Calendar.MINUTE));
Mas quando jogo o resultado em um StringItem, está acrescentado 3 horas.
Por exemplo agora é 08/10/2008 11:36, mas o resultado que aperece é 08/10/2008 14:36
Alguém já passou por isso ou sabe onde está o problema?
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT-3:00"));
Outra coisa não precisa instanciar um new Date() na linha 1, e depois setar em “cal” na linha 3, pois quando você dar um “getInstance” no calendar, ele já pega a data atual.
O problema deveria ser porque o timezone da KVM estava para o fuso central GMT, que é adiantado 3 horas do fuso oficial de Brasília.
Verifica as configurações do emulador, ou do celular, mas se você fizer do jeito que mostrei, nunca vai ter stress, mesmo se o fuso da KVM estiver no fuso horário de Krypton.
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT-3:00"));
Outra coisa não precisa instanciar um new Date() na linha 1, e depois setar em “cal” na linha 3, pois quando você dar um “getInstance” no calendar, ele já pega a data atual.[/quote]
Aviso aos navegantes: Pode ter funcionado neste celular, mas não vai funcionar em todos, por justamente esta sintaxe do GMT não ser algo obrigatório nos celulares. Vc até pode requisitar o GMT-3:00, mas isto não significa que irá ser atendido.Já passei por isto e para quem ainda duvida, olhe com mais cuidado no javadoc do Timezone.