estrutura DYNAMIC_TIME_ZONE_INFORMATION (timezoneapi.h)
Especifica as configurações para um fuso horário e horário de verão dinâmico.
Sintaxe
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;
Membros
Bias
A diferença atual para conversão da hora local neste computador, em minutos. O desvio é a diferença, em minutos, entre o UTC (Tempo Universal Coordenado) e a hora local. Todas as traduções entre UTC e hora local são baseadas na seguinte fórmula:
UTC = hora local + desvio
Esse membro é necessário.
StandardName[32]
Uma descrição para o horário padrão. Por exemplo, "EST" pode indicar Hora Padrão do Leste. A cadeia de caracteres será retornada inalterada pela função GetDynamicTimeZoneInformation . Essa cadeia de caracteres pode estar vazia.
StandardDate
Uma estrutura SYSTEMTIME que contém uma data e hora local quando ocorre a transição do horário de verão para o horário padrão nesse sistema operacional. Se o fuso horário não der suporte ao horário de verão ou se o chamador precisar desabilitar o horário de verão, o membro wMonth na estrutura SYSTEMTIME deverá ser zero. Se essa data for especificada, o membro DaylightDate dessa estrutura também deverá ser especificado. Caso contrário, o sistema pressupõe que os dados de fuso horário são inválidos e nenhuma alteração será aplicada.
Para selecionar o dia correto no mês, defina o membro wYear como zero, os membros wHour e wMinute para o tempo de transição, o membro wDayOfWeek para o dia da semana apropriado e o membro wDay para indicar a ocorrência do dia da semana dentro do mês (1 a 5, em que 5 indica a ocorrência final durante o mês se esse dia da semana não ocorrer 5 vezes).
Usando essa notação, especifique 02:00 no primeiro domingo de abril da seguinte maneira: wHour = 2, wMonth = 4, wDayOfWeek = 0, wDay = 1. Especifique 02:00 na última quinta-feira de outubro da seguinte maneira: wHour = 2, wMonth = 10, wDayOfWeek = 4, wDay = 5.
Se o membro wYear não for zero, a data de transição será absoluta; ocorrerá apenas uma vez. Caso contrário, é uma data relativa que ocorre anualmente.
StandardBias
O valor de desvio a ser usado durante traduções de horário local que ocorrem durante o horário padrão. Esse membro será ignorado se um valor para o membro StandardDate não for fornecido.
Esse valor é adicionado ao valor do membro Bias para formar o desvio usado durante o tempo padrão. Na maioria dos fusos horários, o valor desse membro é zero.
DaylightName[32]
Uma descrição do horário de verão (DST). Por exemplo, "PDT" pode indicar o Horário de Verão do Pacífico. A cadeia de caracteres será retornada inalterada pela função GetDynamicTimeZoneInformation . Essa cadeia de caracteres pode estar vazia.
DaylightDate
Uma estrutura SYSTEMTIME que contém uma data e hora local quando ocorre a transição do horário padrão para o horário de verão nesse sistema operacional. Se o fuso horário não der suporte ao horário de verão ou se o chamador precisar desabilitar o horário de verão, o membro wMonth na estrutura SYSTEMTIME deverá ser zero. Se essa data for especificada, o membro StandardDate nessa estrutura também deverá ser especificado. Caso contrário, o sistema pressupõe que os dados de fuso horário são inválidos e nenhuma alteração será aplicada.
Para selecionar o dia correto no mês, defina o membro wYear como zero, os membros wHour e wMinute para o tempo de transição, o membro wDayOfWeek para o dia da semana apropriado e o membro wDay para indicar a ocorrência do dia da semana dentro do mês (1 a 5, em que 5 indica a ocorrência final durante o mês se esse dia da semana não ocorrer 5 vezes).
Se o membro wYear não for zero, a data de transição será absoluta; ocorrerá apenas uma vez. Caso contrário, é uma data relativa que ocorre anualmente.
DaylightBias
O valor de desvio a ser usado durante traduções de horário local que ocorrem durante o horário de verão. Esse membro será ignorado se um valor para o membro DaylightDate não for fornecido.
Esse valor é adicionado ao valor do membro Bias para formar o desvio usado durante o horário de verão. Na maioria dos fusos horários, o valor desse membro é –60.
TimeZoneKeyName[128]
O nome da chave do Registro de fuso horário no computador local. Para obter mais informações, consulte Comentários.
DynamicDaylightTimeDisabled
Indica se o horário de verão dinâmico está desabilitado. Definir esse membro como TRUE desabilita o horário de verão dinâmico, fazendo com que o sistema use um conjunto fixo de datas de transição.
Para restaurar o horário de verão dinâmico, chame a função SetDynamicTimeZoneInformation com DynamicDaylightTimeDisabled definida como FALSE. O sistema lerá as datas de transição do ano atual na próxima atualização, a próxima reinicialização do sistema ou o final do ano civil (o que vier primeiro).)
Ao chamar a função GetDynamicTimeZoneInformation, esse membro será TRUE se o fuso horário tiver sido definido usando a função SetTimeZoneInformation em vez de SetDynamicTimeZoneInformation ou se o usuário tiver desabilitado esse recurso usando o aplicativo Data e Hora no Painel de Controle.
Para desabilitar o horário de verão, defina esse membro como TRUE, desmarque os membros StandardDate e DaylightDate e chame SetDynamicTimeZoneInformation. Para restaurar o horário de verão, chame SetDynamicTimeZoneInformation com DynamicDaylightTimeDisabled definido como FALSE.
Comentários
O horário de verão dinâmico dá suporte a fusos horários cujos limites para o horário de verão mudam de ano para ano. Esse recurso permite a atualização mais fácil de sistemas, especialmente para localidades em que os limites anois do DST são conhecidos com antecedência. Depois que o fuso horário for atualizado, a configuração de fuso horário atual será aplicada a todas as operações de tempo, mesmo quando a hora em questão ocorreu antes da alteração do fuso horário. Portanto, é melhor armazenar horários UTC e convertê-los no fuso horário local atual.
Você pode definir as datas de transição para o ano atual usando a função SetDynamicTimeZoneInformation . Para definir datas de transição futuras, você deve adicionar entradas aos dados do Registro. As configurações para o horário de verão dinâmico são armazenadas na seguinte chave do Registro:
HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows NT CurrentVersion Time Zones time_zone_name Dynamic DST
Cada chave DST dinâmica inclui os seguintes valores de registro.
Valor do Registro | Tipo | Descrição |
---|---|---|
FirstEntry | REG_DWORD | O primeiro ano na tabela. |
LastEntry | REG_DWORD | O último ano na tabela. |
year1 | REG_BINARY |
As informações de fuso horário a seguir.
|
year2 | REG_BINARY | Uma estrutura REG_TZI_FORMAT . |
Anseiam | REG_BINARY | Uma estrutura REG_TZI_FORMAT . |
Para obter mais informações sobre outros valores na chave de Fusos Horários , consulte TIME_ZONE_INFORMATION.
StandardName e DaylightName são localizados de acordo com o idioma de interface do usuário padrão do usuário atual.
Requisitos
Cliente mínimo com suporte | Windows Vista [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP] |
Cabeçalho | timezoneapi.h (inclua Timezoneapi.h, Windows.h) |