Share via


Ora locale

Anche se il sistema usa l'ora UTC internamente, 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 del fuso orario corrente controllano il modo in cui il sistema converte tra l'ora UTC e l'ora locale. È possibile 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 funzione SetTimeZoneInformation . Per supportare i limiti per l'ora legale che cambiano dall'anno all'anno, usare le funzioni GetTimeZoneInformationForYear, GetDynamicTimeZoneInformation e SetDynamicTimeZoneInformation.

Per recuperare l'ora locale, usare la funzione GetLocalTime . GetLocalTime converte l'ora di sistema in un'ora locale in base alle impostazioni del fuso orario corrente e copia il risultato in una struttura SYSTEMTIME . È possibile impostare l'ora di sistema usando la funzione SetLocalTime . SetLocalTime presuppone che sia stata specificata un'ora locale e venga convertito in UTC prima di impostare l'ora di sistema.

Quando si chiama SetLocalTime, il sistema usa le informazioni sul fuso orario corrente, 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 funzione TzSpecificLocalTimeToSystemTime.