On 06-Nov-2008, Nicolas Alvarez wrote:
yoshito_umaoka@us.ibm.com wrote:
To access time zone rules used by Windows, you can use the API below -
http://msdn.microsoft.com/en-us/library/system.timezoneinfo.getadj ustmentrules.aspx
Any way without .NET?
Yup. Here's a start: dosprompt> REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Eastern Standard Time" HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Eastern Standard Time Display REG_SZ (GMT-05:00) Eastern Time (US & Canada) Dlt REG_SZ Eastern Daylight Time Std REG_SZ Eastern Standard Time MapID REG_SZ 38,39 Index REG_DWORD 0x23 TZI REG_BINARY 2C01000000000000C4FFFFFF00000B000000010002000000000000000000030000 0002000200000000000000 You can decode the item TZI. 2C01000000000000C4FFFFFF00000B000000010002000000000000000000030000 0002000200000000000000 First there are three 32-bit numbers: as shown reverse bytes translate 2C010000 --> 0000012c --> 300 minutes offset from UTC 00000000 00000000 --> 0 std time offset C4FFFFFF ffffffc4 --> -60 dst offset That is timezone offset is 300 minutes; offset for standard time is 300 minutes; offset for daylight time is (300 - 60) = 240 minutes Then there are two 28-byte SYSTEMTIME structures 00000B00000001000200000000000000 00000300000002000200000000000000 The first is the change date to standard time The second is the change date to daylight time 0000 0B00 0000 0100 0200 0000 0000 0000 < ch to std tim 0000 0300 0000 0200 0200 0000 0000 0000 < ch to dst yr mon dow day hr min sec msec For each item reverse the bytes. 0 0b 0 01 02 0 0 0 0 03 0 02 02 0 0 0 Year is always 0 This says change to standard time on the first Sunday in November at 02:00:00.000 and change to daylight time on the second Sunday in March at 02:00:00.000 . I hope this helps you. Dave C.