Compartilhar via


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.
typedef struct _REG_TZI_FORMAT
{
    LONG Bias;
    LONG StandardBias;
    LONG DaylightBias;
    SYSTEMTIME StandardDate;
    SYSTEMTIME DaylightDate;
} REG_TZI_FORMAT;
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)

Confira também

GetDynamicTimeZoneInformation

SYSTEMTIME

SetDynamicTimeZoneInformation