import java.util.TimeZone; public class MyTimezone { public static void main(String[] args) throws Exception { TimeZone timeZone = TimeZone.getDefault(); System.out.println(timeZone); } }
javac MyTimezone.java
java MyTimezone
on one machine I have:
sun.util.calendar.ZoneInfo[id="Europe/Zurich",offset=3600000,dstSavings=3600000,useDaylight=true, transitions=119,lastRule=java.util.SimpleTimeZone[id=Europe/Zurich,offset=3600000,dstSavings=3600000, useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=3600000,startTimeMode=2,endMode=2, endMonth=9,endDay=-1,endDayOfWeek=1,endTime=3600000,endTimeMode=2]]on another machine I have:
sun.util.calendar.ZoneInfo[id="Europe/Vaduz",offset=3600000,dstSavings=3600000,useDaylight=true, transitions=119,lastRule=java.util.SimpleTimeZone[id=Europe/Vaduz,offset=3600000,dstSavings=3600000, useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=3600000,startTimeMode=2,endMode=2, endMonth=9,endDay=-1,endDayOfWeek=1,endTime=3600000,endTimeMode=2]]
The second machine has timezone "Europe/Vaduz", and the Oracle DB doesn't recognize it:
SELECT * FROM V$TIMEZONE_NAMES where TZNAME = 'Europe/Vaduz';nothing!
This explains why your JVM might get in trouble with the Oracle DB and you have to set explicitly the timezone yourself...
See also http://www.javamonamour.org/2014/11/ora-01882-timezone-region-not-found.html
Funnily:
diff /usr/share/zoneinfo/Europe/Vaduz /etc/localtime diff /usr/share/zoneinfo/Europe/Zurich /etc/localtime
these 2 files are identical.
How does Java determine its default timezone from the Linux machine it's running on?
on RHEL, use redhat-config-date system-config-time timeconfig tzselect
No comments:
Post a Comment