Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 Mar 2002 18:27:03 -0600
From:      Timothy Kettering <timster@blackcore.com>
To:        FreeBSD-Java <java@FreeBSD.ORG>
Subject:   Re: Setting the JVM timezone
Message-ID:  <B8B3F8F7.582D%timster@blackcore.com>
In-Reply-To: <20020312191638.A5376@fritz.cc.gt.atl.ga.us>

next in thread | previous in thread | raw e-mail | index | archive | help

>> I brought this up before, but I didnšt really get an satisfactory
>> answer/explaination, so I'm bringing it up again.
> 
> I missed your previous question/answer, and might repeat old
> information.  What was lacking?

My previous question was the same what I wrote in this email.  The responses
were that I should set the timezone in my programs to compenstate for this.

I wasn't really satisfied with the answers, because I wanted to know why the
freebsd JVM was thinking it was in, of all places, +600GMT?  That puts it
somewhere over India.   If it was defaulting to GMT, that would've made a
whole lot more sense, if it were indeed defaulting to some value.

> So, perhaps check 'date "+%Z"' (for bash), and see if this property is
> being consulted.

I ran that command on the FreeBSD server, and I got "CST" returned.  And
this is correct.  I am in the CST time zone.  So as far as I know, the
server clock is set to the right timezone, (CST, -600 GMT).

But requesting the timezone in any java application I execute on the server
gets me (+600 GMT).  And this makes absolutely no sense.  Where is this
value coming from??  It's not CST, or even GMT.  The exact output of a
simple program I included with this email (see below) is:

The TZ is: GMT+06:00

> 
> Also, I recall that there was some issue with certain caledar objects
> not having the same default TZ.  That is, some/most would get GMT, but
> a few would have PST for a default.  This was years ago, and perhaps
> this has been addressed.  Still, it might be that your code interacts
> with this.

I donšt use any Calendar objects.  My programs are merely using Date
objects, then being formatted with SimpleDateFormat.  Hence, all my problems
origniate from the misalignment of the JVM timezone.  Because I'll instance
a Date, then run a SimpleDateFormat.format(), on it, and on my development
machine, it comes out just perfectly fine.  On the FreeBSD machine, it comes
out 12 hours in the future.

> In terms of fixing this, you might just make a static
> setSaneTZ(String) method, and drop this in your scratch/utility
> package for future use.  One line, and your time components are all on
> the same time zone.  :)

Yes, I could put this in, but I'm also the kind of person who dislikes
putting in a fix on top of a problem that (in my perspective) shouldn't be a
problem to start with.  Better to resolve the problem itself, I think.

So I'm hoping to prod the discussion up again on this - to see if its
actually an legimate bug with the FreeBSD JVM or something.  For this
problem does not exist on the OSX JVM implementation which I develop under.

Can people on this list run a simple program on their FreeBSD environment,
and see if it returns the same TZ value that their server clock is set to,
and let the list know?  Thanks.

import java.util.Date;
import java.text.SimpleDateFormat;

public class TestRun
{
    public static void main(String[] args)
    {
        SimpleDateFormat formatter = new SimpleDateFormat("zzz");
        String str = formatter.format(new Date());
        System.out.println("The TZ is: " + str);
    }
}


-- 
Tim Kettering
http://www.blackcore.com


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-java" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?B8B3F8F7.582D%timster>