Date: Tue, 25 May 2010 15:01:52 -0400 From: Jung-uk Kim <jkim@FreeBSD.org> To: freebsd-java@freebsd.org Cc: "Osipov, Michael" <michael.osipov@siemens.com> Subject: Re: Timezone behavior of Java Message-ID: <201005251501.55560.jkim@FreeBSD.org> In-Reply-To: <BA7F2D0AAFA236469C36CDB54DE1A07DA8EFF14A@DEMCHP99E24MSX.ww902.siemens.net> References: <BA7F2D0AAFA236469C36CDB54DE1A07DA8EFF14A@DEMCHP99E24MSX.ww902.siemens.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday 25 May 2010 05:14 am, Osipov, Michael wrote: > Hi folks, > > I came recently across a problem with the timezone settings in our > Jetty on our machine. > > This is the ouput: > osipovmi@blnn719x:/.amd_mnt/blnn728x/home/osipovmi$ echo $LANG > de_DE.UTF-8 > osipovmi@blnn719x:/.amd_mnt/blnn728x/home/osipovmi$ date > Di 25 Mai 2010 11:10:46 CEST > osipovmi@blnn719x:/.amd_mnt/blnn728x/home/osipovmi$ echo $TZ > bash: TZ ist nicht gesetzt. > osipovmi@blnn719x:/.amd_mnt/blnn728x/home/osipovmi$ javac > ShowTimezone.java > osipovmi@blnn719x:/.amd_mnt/blnn728x/home/osipovmi$ java > ShowTimezone > sun.util.calendar.ZoneInfo[id="GMT",offset=0,dstSavings=0,useDaylig >ht=false,transitions=0,lastRule=null] > osipovmi@blnn719x:/.amd_mnt/blnn728x/home/osipovmi$ export > TZ="Europe/Berlin" > osipovmi@blnn719x:/.amd_mnt/blnn728x/home/osipovmi$ date > Di 25 Mai 2010 11:11:25 CEST > osipovmi@blnn719x:/.amd_mnt/blnn728x/home/osipovmi$ java > ShowTimezone > sun.util.calendar.ZoneInfo[id="Europe/Berlin",offset=3600000,dstSav >ings=3600000,useDaylight=true,transitions=143,lastRule=java.util.Sim >pleTimeZone[id=Europe/Berlin,offset=3600000,dstSavings=3600000,useDa >ylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDa >yOfWeek=1,startTime=3600000,startTimeMode=2,endMode=2,endMonth=9,end >Day=-1,endDayOfWeek=1,endTime=3600000,endTimeMode=2]] > osipovmi@blnn719x:/.amd_mnt/blnn728x/home/osipovmi$ > > Java source: System.out.println(TimeZone.getDefault()); > > How can this be explained? Do I have to set the TZ variable > globally? I assumed from date's behavior that /etc/localtime will > suffice. Works fine with OpenJDK6 b19: hammer# cat TimeTest.java import java.util.Date; import java.util.TimeZone; public class TimeTest { public static void main(String args[]) { long time = System.currentTimeMillis(); String millis = Long.toString(time); Date date = new Date(time); System.out.println("Current time in milliseconds = " + millis + " => " + date.toString()); System.out.println("Current time zone: " + TimeZone.getDefault().getID()); } } hammer# javac -version javac 1.6.0 hammer# java -version openjdk version "1.6.0" OpenJDK Runtime Environment (build 1.6.0-b19) OpenJDK 64-Bit Server VM (build 16.0-b13, mixed mode) hammer# javac TimeTest.java hammer# cp /usr/share/zoneinfo/Asia/Seoul /etc/localtime hammer# date Wed May 26 03:50:39 KST 2010 hammer# echo $TZ TZ: Undefined variable. hammer# java TimeTest Current time in milliseconds = 1274813492978 => Wed May 26 03:51:32 KST 2010 Current time zone: Asia/Seoul hammer# cp /usr/share/zoneinfo/America/New_York /etc/localtime hammer# date Tue May 25 14:53:10 EDT 2010 hammer# java TimeTest Current time in milliseconds = 1274813598908 => Tue May 25 14:53:18 EDT 2010 Current time zone: America/New_York hammer# setenv TZ Asia/Seoul hammer# echo $TZ Asia/Seoul hammer# java TimeTest Current time in milliseconds = 1274813844489 => Wed May 26 03:57:24 KST 2010 Current time zone: Asia/Seoul hammer# unsetenv TZ hammer# echo $TZ TZ: Undefined variable. hammer# java TimeTest Current time in milliseconds = 1274813869066 => Tue May 25 14:57:49 EDT 2010 Current time zone: America/New_York This code example was taken from: http://www.minaret.biz/tips/timezone.html Jung-uk Kim
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201005251501.55560.jkim>