Timezones, Daylight Savings, and the TZupdater for the Java Runtime Environment (JRE)

By the Java SE Platform Support Team, June 2013


Timezones and Daylight Saving Time

As anyone who has traveled any significant distance or worked with colleagues abroad knows, the world is divided into many different timezones. Furthermore, as well as different countries being in one or more different timezones, some countries also apply Daylight Saving Time (DST). DST is a system of handling the changing amounts of daylight throughout the year, as the seasons change. In any given timezone, as you get further away from the equator, there are more hours of daylight per day in summer than there are in winter. So, the goal of DST is to maximize the daylight hours available during typical waking hours. By adjusting clocks forward on a specific date by a standard amount, usually one hour, people can take better advantage of daylight during their typical working day. For example, suppose you wake daily at 7:00 AM. In the spring, the sun rises earlier each day. So, instead of waking up at 6:00 AM to take advantage of the extra daylight, DST observers move their clocks ahead by one hour. The effect is that they can continue to wake at 7:00 AM according to the clock and also enjoy more daylight. In the fall, clocks are set back an hour as sunrise happens later each day.

Since DST policy is set by national and regional governments, changes in DST policy occur at different times in different countries. Some countries are currently extending their DST periods, thereby changing the dates on which DST will come into effect in a given year. Some countries do not implement any DST at all. So, regardless of where in the world you live, you should anticipate that changes in DST and timezone rules might occur at some point, and be ready to adjust clocks accordingly on the approved dates when these decisions are made. For Java technology-based applications that need to know the exact time in a given location, it is recommended to keep the Java Runtime Environment (JRE) software updated with these latest DST rules. See Timezone Data Versions in the JRE Software to see which Timezone data version is included in your version of the JRE software.

Timezone Database

In the absence of a single international body to keep track of the different timezones and the DST rules applied in each of them, the most widely used and respected body is the Timezone Database. The Timezone Database provides regular distributions of its data to reflect any recent changes in the timezone boundaries or DST rules that are applied in different countries or regions throughout the world. The computer industry uses this timezone data in programs and operating systems.

Updating the Java Runtime Environment With the Latest Timezone Data

Oracle makes every effort to ship each JRE update release with the most up-to-date timezone data possible. Including current timezone data in each update of the JRE software, however, given the unpredictability of timezone changes one could occur shortly after an update to the JRE so waiting for the next update might not be possible.  Support user might also want to update earlier JRE releases that have already been installed and that are otherwise functioning adequately. The Java SE platform's timezone data is not read from the local or host operating system (OS), so OS timezone patches will not update the JRE software's timezone data. Consequently, JRE releases might have outdated DST rules that have been superseded by changes in timezone boundaries or DST rules that are implemented after that release. As a result, applications running on a JRE implementation in a region that has changed its DST rules might report the incorrect time after the date that the new DST rules were implemented. This can have serious consequences for software applications.

If you have installed the latest update release of Java Runtime Environment (JRE) then you probably already have the most recent version of the timezone data. However, more recent data that affects your timezone might have been released after the latest JRE update release. Consequently, if you are concerned about application failures that may result from any DST changes, you should perform the following steps:

  1. Check which version of the timezone data is included in your JRE version. See Timezone Data Versions in the JRE Software.
  2. If the latest timezone data for your region is not in your JRE implementation, then update your JRE version with the most recent update release.
  3. If the latest JRE does not have the most current TimeZone date download the latest TZUpdater tool and follow the instructions below

The TZUpdater Tool

Installing the latest JRE update release is the preferred vehicle for delivering both timezone data updates and other product improvements, such as security fixes. However, if the timezone rules in your region change and you are unable to use the latest JRE update release, then you will need to update the platform's timezone data without altering other system configurations and dependencies. If for any reason you cannot upgrade your JRE software to the most recent update release, Oracle provides, to it's support customers, a tool that can modify the timezone data within your existing JRE software without requiring you to update the whole platform. This tool, TZUpdater, updates installed JRE implementations with the most recent timezone data.

If the latest timezone data for your region is still not correct, then you should download and run the TZUpdater tool (Requires My Oracle Support Account).

Oracle provides TZUpdater tools for all currently supported versions of the JRE software and on all the platforms that are supported by Oracle. The tool is designed and built to provide full compatibility with any existing, previously installed JRE software on your system. For details of the latest release of the TZUpdater tool, see the TZUpdater README.

Even if you do upgrade to the latest update release of the JRE software, it is still possible that the latest timezone data for your region is not included. In this case, you should run the TZUpdater tool. See Timezone Data Versions in the JRE Software to see which version of the timezone data is included in which JRE update release.

For More Information

The following links point to information provided by Oracle relating to timezones and DST changes and how they affect the Java platform:

The following external links provide general information about timezones and DST: