Устанавливает параметры настройки для часового пояса и динамического летнего времени.
typedef struct _TIME_DYNAMIC_ZONE_INFORMATION { LONG Bias; WCHAR StandardName[32]; SYSTEMTIME StandardDate; LONG StandardBias; WCHAR DaylightName[32]; SYSTEMTIME DaylightDate; LONG DaylightBias; WCHAR TimeZoneKeyName[128]; BOOLEAN DynamicDaylightTimeDisabled; } DYNAMIC_TIME_ZONE_INFORMATION, *PDYNAMIC_TIME_ZONE_INFORMATION; |
Текущее смещение для преобразования местного времени на этом компьютере, в минутах. Смещение - это разница во времени, в минутах, между Универсальным глобальным время (UTC) и местным временем. Все преобразования UTC и местным временем основаны на нижеследующей формуле:
UTC = local time (местное время) + bias (смещение времени) |
Этот член структуры требует.
StandardNameОписание стандартного времени. Например, "EST" может указывать Восточное стандартное время. Строка должна возвращаться неизменной функцией GetDynamicTimeZoneInformation. Эта строка может быть пустой.
StandardDateСтруктура SYSTEMTIME, которая содержит в себе дату и местное время, когда происходит на этой операционной системе переход от летнего времени к стандартному времени. Если часовой пояс действительно не поддерживает летнее время, или если вызывающая программа должна отключить летнее время, то член wMonth в структуре SYSTEMTIME должен быть нулем. Если эта дата определяется, то член DaylightDate этой структуры должен также определяться. В противном случае, система предполагает, что данные часового пояса недопустимы и никакие изменения не должны применяться.
Чтобы выбрать правильный день месяца, установите член структуры wYear в нуль, а члены структуры wHour и wMinute в переходное время, член wDayOfWeekу в соответствующий день недели, а в члене структуры wDay указывается частота встречи дня недели внутри месяца (1 - 5, где 5 указывает конечное событие в ходе месяца, если в этот день недели не встречается 5 раз). Используя эту условную систему обозначений, 02:00 в первое воскресенье апреля устанавливается следующим образом: wHour = 2, wMonth = 4, wDayOfWeek = 0, wDay = 1. Прошлый четверг в октябре 02:00 устанавливается следующим образом: wHour = 2, wMonth = 10, wDayOfWeek = 4, wDay = 5. Если член структуры wYear не нуль, то переходная дата абсолютна; это происходит только один раз. В противном случае, это - относительная дата, которая происходит ежегодно.StandardBias
Значение смещения, которое используется в ходе преобразования местного времени, происходящее в ходе поясного времени. Этот член структуры игнорируется, если значение для него не предоставляется.
Это значение добавляется к значению члена структуры Bias, чтобы сформировать смещение используемое в ходе поясного времени. В большинстве часовых поясов значение этого члена структуры - нуль.DaylightName
Описание летнего времени (DST). Например, "PDT" может служить признаком Тихоокеанского летнего времени. Строка должна возвращаться неизменной функцией GetDynamicTimeZoneInformation. Эта строка может быть пустой.
DaylightDateСтруктура SYSTEMTIME, которая содержит в себе дату и местное время, когда происходит в этой операционной системе переход от поясного времени к летнему времени. Если часовой пояс действительно не поддерживает летнее время или, если вызывающая программа должна отключить летнее время, член wMonth структуры SYSTEMTIME должен быть нулем. Если эта дата определена, то член StandardDate в этой структуре должен также определяться. В противном случае, система предполагает, что данные часового пояса недопустимы и никакие изменения не должны применяться.
Чтобы выбрать правильный день месяца, установите член структуры wYear в нуль, члены структуры wHour и wMinute в сменяемое время, член структуры wDayOfWeek в соответствующий день недели, а в члене структуры wDay укажите частоту встречи этого дня недели в пределах месяца (1 - 5, где 5 указывает последний случай в ходе месяца, если в этот день недели не встречается 5 раз). Если член структуры wYear не нуль, сменяемая дата абсолютна; это произойдет только один раз. В противном случае, это - относительная дата, которая происходит ежегодно.DaylightBias
Значение разницы во времени, которое используется в ходе преобразования местного времени, происходящее в ходе летнего времени. Этот член структуры игнорируется, если значение для него не предоставляется.
Это значение добавляется к значению члена структуры Bias, чтобы сформировать для использования в ходе летнее время. В большинстве часовых поясов значение этого члена структуры –(минус)60.TimeZoneKeyName
Имя ключа реестра часового пояса на локальном компьютере. Дополнительную информацию смотри в статье Замечания.
DynamicDaylightTimeDisabledУказывает, блокируется ли динамическое летнее время. Установка этого члена структуры в TRUE отключает динамическое летнее время, заставляя систему использовать фиксированный набор сменных дат.
Чтобы восстановить динамическое летнее время, вызовите функцию SetDynamicTimeZoneInformation с параметром DynamicDaylightTimeDisabled, установленным в FALSE. Система читает сменные даты в течение текущего года в каждый раз при обновлении системы, при очередной системной перезагрузке или в конце календарного года (какой бы параметр не был на первом месте).
При вызове функции GetDynamicTimeZoneInformation, этот член структуры - TRUE, если часовой пояс устанавливал использование функции SetTimeZoneInformation вместо SetDynamicTimeZoneInformation или, если пользователь отключил эту функцию, используя приложение Date and Time Дата и время) в Панели Управления (Control Panel).
Чтобы отключить летнее время, установите этот член структуры в TRUE, очистите члены структуры StandardDate и DaylightDate и вызовите функцию SetDynamicTimeZoneInformation. Чтобы восстановить летнее время, вызовите SetDynamicTimeZoneInformation с параметром DynamicDaylightTimeDisabled установленным в FALSE.Динамическое летнее время оказывает поддержку часовых поясов, границы которых для летнего времени изменяются из года в год. Эта свойство делает возможным более легкое обновление систем, специально для вариантов национальных настроек, где ежегодные границы летнего времени (DST) известны заранее. После того, как часовой пояс обновиться, текущая установка часового пояса применяется на все операции времени, даже тогда, когда рассматриваемое время произошло перед тем, как изменился часовой пояс. Поэтому, лучше сохранять время в формате UTC и преобразовывать его в текущий местный часовой пояс.
Вы можете назначить сменные даты в течение текущего года, используя функцию SetDynamicTimeZoneInformation. Чтобы назначить будущие сменные даты, Вы должны добавить записи к данным реестра. Параметры настройки динамического летнего времени сохраняются в нижеследующем ключе реестра:
|
Каждый раздел реестра Dynamic DST включает в себя нижеследующие значения реестра.
Значение реестра |
Тип |
Описание |
---|---|---|
FirstEntry | REG_DWORD | Первый год в таблице. |
LastEntry | REG_DWORD | Последний год в таблице. |
year1 | REG_BINARY | Ниже следует информация о часовом поясе.
typedef struct _REG_TZI_FORMAT { LONG Bias; LONG StandardBias; LONG DaylightBias; SYSTEMTIME StandardDate; SYSTEMTIME DaylightDate; } REG_TZI_FORMAT; |
year2 | REG_BINARY | Структура REG_TZI_FORMAT. |
yearN | REG_BINARY | Структура REG_TZI_FORMAT. |
Дополнительную информацию о других значениях в разделе реестра Time Zones, см. структуру TIME_ZONE_INFORMATION.
Обзор Время (операционной системы), Структуры, используемые для времени, GetDynamicTimeZoneInformation, SetDynamicTimeZoneInformation, SYSTEMTIME
Размещение и совместимость DYNAMIC_TIME_ZONE_INFORMATION | ||
К | Windows Vista | Да |
л | Windows XP | Да |
и | Windows 2000 Professional | Да |
е | Windows NT Workstation | Да |
н | Windows Me | Да |
т | Windows 98 | Да |
Windows 95 | Да | |
С | Windows Server 2008 | Да |
е | Windows Server 2003 | Да |
р | Windows 2000 Server | Да |
в | Windows NT Server | Да |
е | ||
р | ||
Используемая библиотека | - | |
Используемая DLL | - | |
Заголовочный файл | ||
- объявлено в | Winbase.h | |
- включено в | Windows.h | |
Unicode | Нет | |
Замечания по платформе | Не имеется |