Místní čas

I když systém interně používá čas založený na standardu UTC, vaše aplikace budou obecně zobrazovat místní čas, což je datum a čas dne pro vaše časové pásmo. Abyste tedy zajistili správné výsledky, musíte mít na paměti, jestli funkce očekává, že obdrží čas založený na standardu UTC nebo místní čas a zda funkce vrátí čas založený na standardu UTC nebo místní čas.

Aktuální nastavení časového pásma řídí způsob převodu systému mezi UTC a místním časem. Aktuální nastavení časového pásma můžete načíst pomocí funkce GetTimeZoneInformation. Funkce zkopíruje výsledek do struktury TIME_ZONE_INFORMATION a vrátí hodnotu označující, zda je místní čas aktuálně ve standardním čase nebo letním čase (DST). Nastavení časového pásma můžete nastavit pomocí funkce SetTimeZoneInformation. K podpoře hranic pro letní čas, který se mění z roku na rok, použijte GetTimeZoneInformationForYear, GetDynamicTimeZoneInformation a SetDynamicTimeZoneInformation funkce.

K načtení místního času použijte funkci GetLocalTime. GetLocalTime převede systémový čas na místní čas na základě aktuálního nastavení časového pásma a zkopíruje výsledek do struktury SYSTEMTIME. Systémový čas můžete nastavit pomocí funkce SetLocalTime. SetLocalTime předpokládá, že jste zadali místní čas a před nastavením systémového času převedete na UTC.

Při volání SetLocalTime, systém používá aktuální informace o časovém pásmu, včetně nastavení letního času, k provedení převodu. Všimněte si, že systém používá nastavení letního času aktuálního času, nikoli nového času, který nastavujete. Proto, aby se zajistil správný výsledek, volání SetLocalTime podruhé, nyní, když první volání aktualizovalo nastavení letního času.

Pokud chcete převést čas založený na utc na místní čas, použijte funkci SystemTimeToTzSpecificLocalTime. Pokud chcete převést místní čas na čas založený na standardu UTC, použijte funkci TzSpecificLocalTimeToSystemTime.