DYNAMIC_TIME_ZONE_INFORMATION struttura (timezoneapi.h)

Specifica le impostazioni per un fuso orario e l'ora legale dinamica.

Sintassi

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;

Members

Bias

La deviazione corrente, espressa in minuti, per la conversione dell'ora locale in questo computer. Il pregiudizio è la differenza, in minuti, tra l'ora UTC (Coordinated Universal Time) e l'ora locale. Tutte le traduzioni tra UTC e ora locale si basano sulla formula seguente:

UTC = ora locale e pregiudizi

Questo membro è obbligatorio.

StandardName[32]

Descrizione per l'ora standard. Ad esempio, "EST" potrebbe indicare l'ora standard orientale. La stringa verrà restituita invariata dalla funzione GetDynamicTimeZoneInformation . Questa stringa può essere vuota.

StandardDate

Struttura SYSTEMTIME che contiene una data e un'ora locale quando si verifica la transizione dall'ora legale all'ora legale in questo sistema operativo. Se il fuso orario non supporta l'ora legale o se il chiamante deve disabilitare l'ora legale, il membro wMonth nella struttura SYSTEMTIME deve essere zero. Se questa data è specificata, è necessario specificare anche il membro DaylightDate di questa struttura. In caso contrario, il sistema presuppone che i dati del fuso orario non siano validi e non verranno applicate modifiche.

Per selezionare il giorno corretto nel mese, impostare il membro wYear su zero, i membri wHour e wMinute all'ora di transizione, il membro wDayOfWeek al giorno del giorno lavorativo appropriato e il membro wDay per indicare l'occorrenza del giorno della settimana entro il mese (da 1 a 5, dove 5 indica l'occorrenza finale durante il mese se tale giorno della settimana non si verifica 5 volte).

Usando questa notazione, specificare 02:00 la prima domenica di aprile come indicato di seguito: wHour = 2, wMonth = 4, wDayOfWeek = 0, wDay = 1. Specificare 02:00 nell'ultimo giovedì di ottobre come indicato di seguito: wHour = 2, wMonth = 10, wDayOfWeek = 4, wDay = 5.

Se il membro wYear non è zero, la data di transizione è assoluta; si verificherà una sola volta. In caso contrario, si tratta di una data relativa che si verifica annualmente.

StandardBias

Valore di pregiudizio da usare durante le traduzioni dell'ora locale che si verificano durante l'ora standard. Questo membro viene ignorato se non viene fornito un valore per il membro StandardDate .

Questo valore viene aggiunto al valore del membro Bias per formare la distorsione usata durante l'ora standard. Nella maggior parte dei fusi orari il valore di questo membro è zero.

DaylightName[32]

Descrizione dell'ora legale (DST). Ad esempio, "PDT" potrebbe indicare l'ora legale del Pacifico. La stringa verrà restituita invariata dalla funzione GetDynamicTimeZoneInformation . Questa stringa può essere vuota.

DaylightDate

Struttura SYSTEMTIME che contiene una data e un'ora locale in cui si verifica la transizione dall'ora solare all'ora legale in questo sistema operativo. Se il fuso orario non supporta l'ora legale o se il chiamante deve disabilitare l'ora legale, il membro wMonth nella struttura SYSTEMTIME deve essere zero. Se questa data è specificata, è necessario specificare anche il membro StandardDate in questa struttura. In caso contrario, il sistema presuppone che i dati del fuso orario non siano validi e non verranno applicate modifiche.

Per selezionare il giorno corretto nel mese, impostare il membro wYear su zero, i membri wHour e wMinute all'ora di transizione, il membro wDayOfWeek al giorno del giorno lavorativo appropriato e il membro wDay per indicare l'occorrenza del giorno della settimana entro il mese (da 1 a 5, dove 5 indica l'occorrenza finale durante il mese se tale giorno della settimana non si verifica 5 volte).

Se il membro wYear non è zero, la data di transizione è assoluta; si verificherà una sola volta. In caso contrario, si tratta di una data relativa che si verifica annualmente.

DaylightBias

Valore di pregiudizio da usare durante le traduzioni dell'ora locale che si verificano durante l'ora legale. Questo membro viene ignorato se non viene fornito un valore per il membro DaylightDate .

Questo valore viene aggiunto al valore del membro Bias per formare la distorsione utilizzata durante l'ora legale. Nella maggior parte dei fusi orari il valore di questo membro è –60.

TimeZoneKeyName[128]

Nome della chiave del Registro di sistema del fuso orario nel computer locale. Per altre informazioni, vedere la sezione Osservazioni.

DynamicDaylightTimeDisabled

Indica se l'ora legale dinamica è disabilitata. L'impostazione di questo membro su TRUE disabilita l'ora legale dinamica, causando l'uso di un set fisso di date di transizione.

Per ripristinare l'ora legale dinamica, chiamare la funzione SetDynamicTimeZoneInformation con DynamicDaylightTimeDisabled impostata su FALSE. Il sistema leggerà le date di transizione per l'anno corrente all'aggiornamento successivo, il riavvio del sistema successivo o la fine dell'anno di calendario (che viene prima).

Quando si chiama la funzione GetDynamicTimeZoneInformation, questo membro è TRUE se il fuso orario è stato impostato usando la funzione SetTimeZoneInformation anzichéSetDynamicTimeZoneInformation o se l'utente ha disabilitato questa funzionalità usando l'applicazione Date e Ora in Pannello di controllo.

Per disabilitare l'ora legale, impostare questo membro su TRUE, cancellare i membri StandardDate e DaylightDate e chiamare SetDynamicTimeZoneInformation. Per ripristinare l'ora legale, chiamare SetDynamicTimeZoneInformation con DynamicDaylightTimeDisabled impostato su FALSE.

Commenti

L'ora legale dinamica fornisce supporto per i fusi orari i cui limiti per l'ora legale cambiano dall'anno all'anno. Questa funzionalità consente di aggiornare più facilmente i sistemi, soprattutto per le impostazioni locali in cui i limiti DST annuali sono noti in anticipo. Dopo l'aggiornamento del fuso orario, l'impostazione del fuso orario corrente viene applicata a tutte le operazioni temporali, anche quando l'ora in questione si è verificata prima della modifica del fuso orario. Pertanto, è consigliabile archiviare le ore UTC e convertirle nel fuso orario locale corrente.

È possibile impostare le date di transizione per l'anno corrente usando la funzione SetDynamicTimeZoneInformation . Per impostare le date di transizione future, è necessario aggiungere voci ai dati del Registro di sistema. Le impostazioni per l'ora legale dinamica vengono archiviate nella chiave del Registro di sistema seguente:

HKEY_LOCAL_MACHINE
   SOFTWARE
      Microsoft
         Windows NT
            CurrentVersion
               Time Zones
                  time_zone_name
                     Dynamic DST

Ogni chiave DST dinamica include i valori del Registro di sistema seguenti.

Valore del Registro di sistema Tipo Descrizione
FirstEntry REG_DWORD Primo anno nella tabella.
LastEntry REG_DWORD Ultimo anno nella tabella.
anno1 REG_BINARY Informazioni sul fuso orario seguenti.
typedef struct _REG_TZI_FORMAT
{
    LONG Bias;
    LONG StandardBias;
    LONG DaylightBias;
    SYSTEMTIME StandardDate;
    SYSTEMTIME DaylightDate;
} REG_TZI_FORMAT;
anno2 REG_BINARY Struttura REG_TZI_FORMAT .
Anelano REG_BINARY Struttura REG_TZI_FORMAT .
 

Per altre informazioni su altri valori nella chiave fusi orari, vedere TIME_ZONE_INFORMATION.

Sia StandardName che DaylightName vengono localizzati in base alla lingua dell'interfaccia utente predefinita dell'utente corrente.

Requisiti

   
Client minimo supportato Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 [app desktop | App UWP]
Intestazione timezoneapi.h (include Timezoneapi.h, Windows.h)

Vedi anche

GetDynamicTimeZoneInformation

SYSTEMTIME

SetDynamicTimeZoneInformation