Ora locale
Mentre il sistema usa internamente l'ora basata su UTC, le applicazioni visualizzeranno in genere l'ora locale , ovvero la data e l'ora del giorno per il fuso orario. Pertanto, per garantire risultati corretti, è necessario tenere presente se una funzione prevede di ricevere un'ora UTC o un'ora locale e se la funzione restituisce un'ora UTC o un'ora locale.
Le impostazioni correnti del fuso orario controllano la modalità di conversione del sistema tra l'ora UTC e l'ora locale. Puoi recuperare le impostazioni correnti del fuso orario usando la funzione GetTimeZoneInformation. La funzione copia il risultato in una struttura TIME_ZONE_INFORMATION e restituisce un valore che indica se l'ora locale è attualmente in ora solare o ora legale (DST). È possibile impostare le impostazioni del fuso orario usando la funzionesetTimeZoneInformation. Per supportare i limiti per l'ora legale che cambiano da anno a anno, usare le funzioni GetTimeZoneInformationForYear, GetDynamicTimeZoneInformation e SetDynamicTimeZoneInformation.
Per recuperare l'ora locale, usare la funzioneGetLocalTime. GetLocalTime converte l'ora di sistema in un'ora locale in base alle impostazioni correnti del fuso orario e copia il risultato in una strutturaSYSTEMTIME. È possibile impostare l'ora di sistema usando la funzioneSetLocalTime. SetLocalTime presuppone che sia stata specificata un'ora locale e che venga convertita in UTC prima di impostare l'ora di sistema.
Quando si chiama SetLocalTime, il sistema usa le informazioni correnti sul fuso orario, inclusa l'impostazione dell'ora legale, per eseguire la conversione. Si noti che il sistema usa l'impostazione dell'ora legale dell'ora legale, non la nuova ora impostata. Pertanto, per garantire il risultato corretto, chiamare SetLocalTime una seconda volta, ora che la prima chiamata ha aggiornato l'impostazione dell'ora legale.
Per convertire un'ora UTC in un'ora locale, usare la funzione SystemTimeToTzSpecificLocalTime. Per convertire un'ora locale in un'ora UTC, usare la funzioneTzSpecificLocalTimeToSystemTime.