Time zones
Time zone information key
The time zone information is stored in the following key:
HKEY_LOCAL_MACHINE\CurrentControlSet\Control\TimeZoneInformation
Values:
Name | Data type | Description |
---|---|---|
ActiveTimeBias | REG_DWORD | The active time bias, in minutes, as configured for the time zone accounting for daylight saving. This is the bias that was used to configure the CMOS clock. |
Bias | REG_DWORD | The current bias, in minutes, for local time translation on this computer. |
DaylightBias | REG_DWORD | The bias value, in minutes, to be used during local time translations that occur during daylight saving time. |
DaylightName | REG_SZ | A description for daylight saving time. |
DaylightStart | REG_BINARY | The date and local time when the transition from standard time to daylight saving time occurs on this operating system. Contains a SYSTEMTIME structure. |
DynamicDaylightTimeDisabled | REG_DWORD | Indicates whether dynamic daylight saving time is disabled. 0 indicates automatic adjustment 1 indicates automatic adjustment is disabled |
RealTimeIsUniversal | REG_DWORD | Indicates if the CMOS clock is configured by using the local date/time (default) or UTC. 0 indicates that the CMOS clock is configured for local date/time 1 indicates that the CMOS clock is configured by using UTC |
StandardBias | REG_DWORD | The bias value, in minutes, to be used during local time translations that occur during standard time. |
StandardName | REG_SZ | A description for standard time. |
StandardStart | REG_BINARY | The date and local time when the transition from daylight saving time to standard time occurs on this operating system. Contains a SYSTEMTIME structure. |
TimeZoneKeyName | REG_SZ | The name of the Time Zones name sub key. |
Notes:
the relation between the local time and bias is as following:
UTC = local time + bias
the names are stored outside the Windows Registry and are references using MUI Form for example:
@tzres.dll,-931
the TimeZoneKeyName is not always present
The RealTimeIsUniversal value is not installed in the system by default and is not officially supported by Windows
The values in this key corresponds with the TIME_ZONE_INFORMATION and DYNAMIC_TIME_ZONE_INFORMATION structures.
Time Zones key
The time zones definitions are stored in the following key:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Time Zones
Sub keys:
Name | Description |
---|---|
%TIMEZONENAME% |
%TIMEZONENAME% represents the name of the Windows name of the time zone. The Unicode organization maintains windowsZones.xml to map the Windows names to corresponding IANA names.
Values:
Name | Data type | Description |
---|---|---|
TzVersion | REG_DWORD |
Time Zones %TIMEZONENAME% sub key
Sub keys:
Name | Description |
---|---|
Dynamic DST | Contains the dynamic daylight saving time values |
Note that not every Time Zones name sub key contains a Dynamic Daylight Saving Time sub key (Dynamic DST).
Values:
Name | Data type | Description |
---|---|---|
Display | REG_SZ | The display name |
Dlt | REG_SZ | The description for daylight time |
Index | ||
MapID | ||
MUI_Display | REG_SZ | The display name in MUI Form |
MUI_Dlt | REG_SZ | The description for daylight time in MUI Form |
MUI_Std | REG_SZ | The description for standard time in MUI Form |
Std | REG_SZ | The description for standard time |
TZI | REG_BINARY | Time zone information Contains a Registry Time Zone information structure |
Dynamic Daylight Saving Time sub key
The Dynamic Daylight Saving Time sub key contains time zone information for time zones that apply different daylight saving per year.
Values:
Name | Data type | Description |
---|---|---|
FirstEntry | REG_DWORD | The first year in the key |
LastEntry | REG_DWORD | The last year in the key |
%YEAR% | REG_BINARY | Time zone information Contains a Registry Time Zone information structure |
Where %YEAR% represents the year the dynamic daylight saving time zone information applies to, e.g. 2006.
Data Structures
SYSTEMTIME structure
The SYSTEMTIME structure is 16 bytes of size and consists of:
Offset | Size | Value | Description |
---|---|---|---|
0 | 2 | Year | |
2 | 2 | Month Where 1 represents January |
|
4 | 2 | Day of week Where 0 represents Sunday |
|
6 | 2 | Day of month Where 1 represents the first day |
|
8 | 2 | Hour Where hour ranges from 0 to 23 |
|
10 | 2 | Minutes Where minutes ranges from 0 to 59 |
|
12 | 2 | Seconds Where seconds ranges from 0 to 59 |
|
14 | 2 | Milli seconds Where milli seconds ranges from 0 to 999 |
Registry Time Zone information structure
The Registry Time Zone information (TIME_ZONE_INFORMATION
or
_REG_TZI_FORMAT
) structure is 44 bytes of size and consists of:
Offset | Size | Value | Description |
---|---|---|---|
0 | 4 | Bias Contains the difference between UTC and local time, in minutes |
|
4 | 4 | StandardBias Contains the difference between UTC and local time, in minutes, or 0 if not set |
|
8 | 4 | DaylightBias Contains the difference between standard and daylight savings time, in minutes The total difference is: Bias + DaylightBias |
|
12 | 16 | StandardDate Date and time when the daylight savings time switches to standard time, in local time Contains a SYSTEMTIME structure with year set to 0 |
|
28 | 16 | DaylightDate Date and time when the standard time switches to daylight savings time, in local time Contains a SYSTEMTIME structure with year set to 0 |
The wDayOfWeek member of a SYSTEMTIME structure represents the appropriate weekday, and the wDay member represents the occurrence of the day of the week within the month, where 5 indicates the final occurrence during the month if that day of the week only occurs 4 times in the month.
If the wYear member is 0, the date is relative, meaning the daylight savings occurs yearly. Otherwise the date is abosule, meaning daylight savings only changes once.
Note that DaylightBias can be set when DaylightDate is not set.