Different places in the world are in different time zones so Java needs to keep track of time zone information.
Such information gets complicated when one considers rules for Daylight Saving Time across regions. There are some places where Daylight Saving Time changes occur multiple times per year. In Morocco, for example, changes occur in March, and October as well as around Ramadan. The rules can vary from country to country and in some cases within a country. These rules are updated from time to time. In the United States they were last updated in 2007.
In order to allow applications to accurately convert dates and times from one place to the equivalent time at another location Java needs to track all such known changes.
Although there is no international regulatory agency that governs time zone changes, there is a collaborative compilation of time zone data known as the TZ Database or IANA Time Zone Database. This database not only contains past rules but –where available- rules for future changes.
IANA updates their database several times a year, as time zone information changes.
Since 2002 the JRE relies on this database for the accuracy of its time conversion routines.
The vast majority of Java users get updates to their JRE’s time-zone information as part of the regular Java updates. There are two cases however, when this is not possible:
For both of these cases Oracle provides a tool called TZUpdater.
Starting with TZUpdater 2.0 the tool contacts the IANA servers directly and downloads the most up-to-date time zone information. With this new functionality administrators can use the same tool for all JRE time zone information updates.
To ensure that the Time Zone Database downloaded has not been damaged in transit the tool compares it against a known checksum.
The readme contains instructions on how to use the tool by downloading the IANA time zone database to a local directory for cases on which the computer that needs to be updated cannot reach the IANA servers directly.
This tool updates only the time zone information in the JRE. Most modern operating systems will update their own time-zone information as part of their regular updates.
To learn more: Timezones, Daylight Savings, and the TZupdater for the Java Runtime Environment (JRE)