The default timezone of a Sun JVM is determined by user locale settings. If the runtime can't determine a sensible timezone from those it defaults to GMT, which is 3hrs off from Brazilia time, i think.

Looking at the source of TimeZone it uses the following system properties:
user.timezone
user.country
java.home

If user.timezone is not set then a native call is made using user.country and java.home. I'm not sure what happens for a multi-timezone country like Brazil ;)

So you could:

1) pass in the user.timezone system property to the runtime.

2) Set your servers default timezone in code:

TimeZone.setDefault(TimeZone.getTimeZone(id));

where id is one of:

Brazil/DeNoronha
America/Sao_Paulo (probably the one you want or maybe Brazil/East)
America/Boa_Vista
Brazil/Acre or America/Rio_Branco

Are you running Tomcat as a service? If so, you may also want to check that the regional settings for the user running the service are also set to Brazilia.

I would also check what is actually being determined by the JVM. Do something like:

System.out.println(TimeZone.getDefault());
System.getProperties().list(System.out);

HTH,

Jon

Acácio Furtado Costa wrote:

Hi  everybody



            We have a Tom Cat application Server 5.0.19 running in a Windows 
2003 with a Sun JDK 1.4.2.

            We are having problems with  time of our Applications . The time is 
correct under SO but we have 3 hours of difference in the applications (+3).



Our offset time is Brasilia -3:00 in the Windows 2003 and Regional settings is 
Portuguese, Brazil.



The method TO GET SYSTEM TIME is new Date()



Any suggestion, How we setup server parameters or application (JVM) parameters 
to solve this problem?



Thanks a lot in advance



Acacio Furtado Costa
Pesquisa e Tecnologia

GIA - Magnesita S/A
*(0xx31) 3368-1349
*  [EMAIL PROTECTED]







--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to