Calendar.WEEK_OF_YEAR

1 resposta
yorgan

Bom dia pessoal,
Estou com problemas para obter a semana corrente quando faço o deploy da aplicação no servidor de produção.
Utilizando a data de hoje, na minha máquina recebo como WEEK_OF_YEAR = 2 e no servidor estou recebendo WEEK_OF_YEAR = 1.
Já verifiquei o locale do SO e o Timezone via java e eles estão iguais ao da máquina de desenvolvimento.
Segue o código que estou utilizando para teste:

public static void main(String[] args) {
        Calendar calendar = new GregorianCalendar();
        calendar.setTime(new Date());
        System.out.println("ERA: " + calendar.get(Calendar.ERA));
        System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
        System.out.println("MONTH: " + calendar.get(Calendar.MONTH));
        System.out.println("WEEK_OF_YEAR: " + calendar.get(Calendar.WEEK_OF_YEAR));
        System.out.println("WEEK_OF_MONTH: " + calendar.get(Calendar.WEEK_OF_MONTH));
        System.out.println("DATE: " + calendar.get(Calendar.DATE));
        System.out.println("DAY_OF_MONTH: " + calendar.get(Calendar.DAY_OF_MONTH));
        System.out.println("DAY_OF_WEEK: " + calendar.get(Calendar.DAY_OF_WEEK));
        System.out.println("DAY_OF_WEEK_IN_MONTH: "+ calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
        System.out.println("AM_PM: " + calendar.get(Calendar.AM_PM));
        System.out.println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND));
        System.out.println("ZONE_OFFSET: " + (calendar.get(Calendar.ZONE_OFFSET) / (60 * 60 * 1000)));
        System.out.println("DST_OFFSET: " + (calendar.get(Calendar.DST_OFFSET) / (60 * 60 * 1000)));
    }

Resultado minha máquina:

ERA: 1
YEAR: 2012
MONTH: 0
WEEK_OF_YEAR: 2
WEEK_OF_MONTH: 2
DATE: 5
DAY_OF_MONTH: 5
DAY_OF_WEEK: 5
DAY_OF_WEEK_IN_MONTH: 1
AM_PM: 0
MILLISECOND: 883
ZONE_OFFSET: -3
DST_OFFSET: 1

Resultado servidor:

ERA: 1
YEAR: 2012
MONTH: 0
WEEK_OF_YEAR: 1
WEEK_OF_MONTH: 1
DATE: 5
DAY_OF_MONTH: 5
DAY_OF_WEEK: 5
DAY_OF_WEEK_IN_MONTH: 1
AM_PM: 0
MILLISECOND: 688
ZONE_OFFSET: -3
DST_OFFSET: 1

Alguma dica de como posso ajustar o servidor?

1 Resposta

BMuniz

Yorgan,

Tenho uma aplicação standalone que as vezes apresenta este problema, pois difere da hora do servidor. Para corrigir foi criado um .REG para Windows:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
"Bias"=dword:000000b4
"StandardName"="Hora oficial do Brasil"
"StandardBias"=dword:00000000
"StandardStart"=hex:00,00,02,00,03,00,00,00,00,00,00,00,00,00,00,00
"DaylightName"="Horário brasileiro de verão"
"DaylightBias"=dword:ffffffc4
"DaylightStart"=hex:00,00,0a,00,03,00,00,00,00,00,00,00,00,00,00,00
"ActiveTimeBias"=dword:000000b4

[ ]'s

Criado 5 de janeiro de 2012
Ultima resposta 5 de jan. de 2012
Respostas 1
Participantes 2