當地時間

雖然系統在內部使用 UTC 時間,但您的應用程式通常會顯示 當地時間,也就是時區的日期和時間。 因此,若要確保正確結果,您必須注意函式是否預期會收到以 UTC 為基礎的時間或當地時間,以及函式是否傳回以 UTC 為基礎的時間或當地時間。

目前的時區設定可控制系統在 UTC 和當地時間之間的轉換方式。 您可以使用 GetTimeZoneInformation 函式 來擷取目前的時區設定。 函式會將結果複製到 TIME_ZONE_INFORMATION 結構,並傳回值,指出當地時間目前為標準時間或日光節約時間, (DST) 。 您可以使用 SetTimeZoneInformation 函式 來設定時區設定。 若要支援從年到年度的日光節約時間界限,請使用 GetTimeZoneInformationForYearGetDynamicTimeZoneInformation 和 SetDynamicTimeZoneInformation

若要擷取當地時間,請使用 GetLocalTime 函式。 GetLocalTime 會根據目前的時區設定將系統時間轉換為當地時間,並將結果複製到 SYSTEMTIME 結構。 您可以使用 SetLocalTime 函式來設定系統時間。 SetLocalTime 假設您已指定當地時間,並在設定系統時間之前轉換為 UTC。

當您呼叫 SetLocalTime時,系統會使用目前的時區資訊,包括日光節約時間設定來執行轉換。 請注意,系統會使用目前時間的日光節約時間設定,而不是您設定的新時間。 因此,為了確保結果正確,請再次呼叫 SetLocalTime ,現在第一次呼叫已更新日光節約時間設定。

若要將 UTC 時間轉換為當地時間,請使用 SystemTimeToTzSpecificLocalTime 函式。 若要將當地時間轉換成 UTC 時間,請使用 TzSpecificLocalTimeToSystemTime 函式。