Freigeben über


Ortszeit

Während das System intern UTC-basierte Zeit verwendet, zeigen Ihre Anwendungen im Allgemeinen die Ortszeit an, d. h. das Datum und die Uhrzeit ihrer Zeitzone. Um korrekte Ergebnisse sicherzustellen, müssen Sie daher wissen, ob eine Funktion eine UTC-basierte Zeit oder eine Ortszeit erwartet und ob die Funktion eine UTC-basierte Zeit oder eine Ortszeit zurückgibt.

Die aktuellen Zeitzoneneinstellungen steuern, wie das System zwischen UTC und Ortszeit konvertiert. Sie können die aktuellen Zeitzoneneinstellungen mithilfe der GetTimeZoneInformation-Funktion abrufen. Die Funktion kopiert das Ergebnis in eine TIME_ZONE_INFORMATION-Struktur und gibt einen Wert zurück, der angibt, ob sich die Ortszeit derzeit in der Standardzeit oder in der Sommerzeit befindet. Sie können die Zeitzoneneinstellungen mithilfe der SetTimeZoneInformation-Funktion festlegen. Verwenden Sie die Funktionen GetTimeZoneInformationForYear, GetDynamicTimeZoneInformation und SetDynamicTimeZoneInformation , um Grenzen für die Sommerzeit zu unterstützen, die sich von Jahr zu Jahr ändern.

Verwenden Sie zum Abrufen der Ortszeit die GetLocalTime-Funktion . GetLocalTime konvertiert die Systemzeit basierend auf den aktuellen Zeitzoneneinstellungen in eine lokale Zeit und kopiert das Ergebnis in eine SYSTEMTIME-Struktur . Sie können die Systemzeit mithilfe der SetLocalTime-Funktion festlegen. SetLocalTime geht davon aus, dass Sie eine Ortszeit angegeben haben und in UTC konvertiert werden, bevor Sie die Systemzeit festlegen.

Wenn Sie SetLocalTime aufrufen, verwendet das System die aktuellen Zeitzoneninformationen, einschließlich der Sommerzeiteinstellung, für die Konvertierung. Beachten Sie, dass das System die Sommerzeiteinstellung der aktuellen Zeit verwendet, nicht die neue Zeit, die Sie festlegen. Um das richtige Ergebnis sicherzustellen, rufen Sie setLocalTime daher ein zweites Mal auf, nachdem der erste Anruf die Sommerzeiteinstellung aktualisiert hat.

Verwenden Sie die SystemTimeToTzSpecificLocalTime-Funktion , um eine UTC-basierte Zeit in eine lokale Zeit zu konvertieren. Verwenden Sie die Funktion TzSpecificLocalTimeToSystemTime , um eine lokale Zeit in eine UTC-basierte Zeit zu konvertieren.