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.
|
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) |