Masayoshi.Okutsu@Sun.COM wrote on 06/22/2007 07:31:53 AM:
On 6/22/2007 4:31 AM, Paul Eggert wrote:
Does this mean that the Windows-Tzid table maintained by the CLDR project is incorrect, or that CLDR needs a new table for Vista? If so, we should warn the CLDR folks about the problem. Please see <http://unicode.org/cldr/data/diff/supplemental/windows_tzid.html>.
Some time ago I pointed out that there's no concept of tzid on Windows, and I asked how CLDR got these "Windows-Tzids." But I don't think I got any answer.
These is no concept of tzid on Windows, but at least MS maintains registry keys under - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones My understanding is that CLDR folks assumed these "time-zone strings" as tzids. MS defines a sort of tzids called "CodTimeZoneId" for Exchange/Outlook. http://msdn2.microsoft.com/en-us/library/ms526601.aspx These are obviously a subset of Windows "Time Zones" registries.
The Java runtime uses the GetTimeZoneInformation() and "Time Zones" registry values to detect the current Windows time zone and map it to a tz database ID using some complicated method. You may want to check <JRE_HOME>\lib\tzmappings in JRE/JDK 6 for Windows and the runtime code for detecting the current Windows time zone. The source code can be downloaded from http://download.java.net/openjdk/jdk7/.
Masayoshi
Windows used to support only a pair of DST start/end rules per zone, but MS finlally implemented a framework for supporting historic changes since Windows Vista. http://msdn2.microsoft.com/en-us/library/ms724253.aspx I do not think this enhancement has any impacts to Java runtime on Windows although. Yoshito