Hello,

I found some test cases in our project started failing after updating JRE's tzdata version to 2014g. The test case creates a new TimeZone, and modify the raw offset. I know it's ancient API before Java implemented tz database, and I know the functionality is somewhat moot at this point. However, it looks the problem was introduced recently - I thought it worked OK a few months ago (but I'm not 100% sure).

Java version:

java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)

TZ database version: 2014g

Simple test code:

        for (String id : TimeZone.getAvailableIDs()) {
            TimeZone tz = TimeZone.getTimeZone(id);

            int orgOffset = tz.getRawOffset();

            // Update raw offset : + 30 minutes
            int newOffset = orgOffset + 30*60*1000;
            tz.setRawOffset(newOffset);

            int actualOffset = tz.getRawOffset();

            if (actualOffset != newOffset) {
                System.out.println(id + " [org=" + orgOffset
                        + ", new=" + newOffset
                        + ", actual=" + actualOffset + "]");
            }
        }

Output:

Asia/Yakutsk [org=36000000, new=37800000, actual=41400000]
Europe/Kaliningrad [org=10800000, new=12600000, actual=16200000]
Europe/Volgograd [org=14400000, new=16200000, actual=19800000]
Asia/Magadan [org=43200000, new=45000000, actual=52200000]
Asia/Srednekolymsk [org=43200000, new=45000000, actual=48600000]
Asia/Khandyga [org=36000000, new=37800000, actual=41400000]
Asia/Yekaterinburg [org=21600000, new=23400000, actual=27000000]
Asia/Vladivostok [org=39600000, new=41400000, actual=45000000]
Europe/Simferopol [org=14400000, new=16200000, actual=19800000]
Asia/Ust-Nera [org=39600000, new=41400000, actual=45000000]
Asia/Omsk [org=25200000, new=27000000, actual=30600000]
Asia/Novosibirsk [org=25200000, new=27000000, actual=30600000]
Asia/Sakhalin [org=39600000, new=41400000, actual=45000000]
Asia/Krasnoyarsk [org=28800000, new=30600000, actual=34200000]
Asia/Chita [org=36000000, new=37800000, actual=45000000]
Asia/Irkutsk [org=32400000, new=34200000, actual=37800000]
Europe/Moscow [org=14400000, new=16200000, actual=19800000]
America/Grand_Turk [org=-18000000, new=-16200000, actual=-19800000]
W-SU [org=14400000, new=16200000, actual=19800000]


If my understanding is correct, the standard offset of these zones will change later in this year.

Should I go ahead and file a bug?

-Yoshito

Reply via email to