擷取時間和日期資訊

本主題包含在您的應用程式中使用 NLS 函式來擷取 時間和日期 資訊的指示,以及持續時間資料。 如果您的應用程式必須保存資料,請參閱 使用持續性地區設定資料

Windows Vista 和更新版本: 本主題中討論的函式可以從 自訂地區設定擷取資料。 特別是,它們可以用來自訂時間和日期格式。 例如,可能會有時間格式,例如 「hhHmm'ss'」,因此會產生時間字串,例如 「12H34'12'''」。

擷取時間資訊

您的應用程式可以使用 GetTimeFormatGetTimeFormatEx 函式,隨時取得適用于目前地區設定的格式字串。 任一函式都會檢查有效 SYSTEMTIME 結構中的每個時間值,以判斷其是否在適當的值範圍內,忽略 結構的日期部分。 如果任一時間值超出正確的範圍,函式就會因為程式碼ERROR_INVALID_PARAMETER而失敗。 函式不會針對不正確的格式字串傳回任何錯誤,但只會形成最佳的可能時間字串。

注意

NLS 時間函式不包含格式化時間字串的毫秒。

 

若要取得時間格式而不執行任何實際格式設定,應用程式可以使用GetLocaleInfo 或 GetLocaleInfoEx函式,在呼叫中指定LOCALE_STIMEFORMAT常數。

使用時間標記

時間標記的範例包括英文 (美國) 的 「AM」 和 「PM」,以及西班牙文 (墨西哥) 的 「de.」 和 「du.」。 如果在呼叫GetTimeFormat 或 GetTimeFormatEx中指定TIME_NOTIMEMARKER,函式會移除前面和之後的時間標記 () 分隔符號。 如果時間標記存在且呼叫中未設定TIME_NOTIMEMARKER旗標,函式會根據指定的地區設定識別碼來當地語系化時間標記。

移除前分鐘和秒的分隔符號

您的應用程式可以使用指定的TIME_NOMINUTESORSECONDS或TIME_NOSECONDS呼叫GetTimeFormat 或 GetTimeFormatEx,以移除分鐘和/或秒元素後面的分隔符號。

使用 24 小時時間格式

如果您的應用程式支援 24 小時的時間格式,可以使用 TIME_FORCE24HOURFORMAT 呼叫 GetTimeFormatGetTimeFormatEx 。 除非設定TIME_NOTIMEMARKER旗標,否則函式會顯示任何現有的時間標記。

擷取日期資訊

應用程式可以使用 GetDateFormatGetDateFormatEx 函式,擷取適用于目前地區設定之任何日期的字串。 任一函式都會檢查有效 SYSTEMTIME 結構中的每一個日期值年、月、日和星期幾,並忽略結構的時間部分。 日期名稱、縮寫日期名稱、月份名稱和縮寫月份名稱都會根據地區設定識別碼進行當地語系化。 如果星期數不正確,函式會使用正確的值,而且不會傳回錯誤。 如果其他任何日期值超出正確的範圍,函式會失敗並顯示程式碼ERROR_INVALID_PARAMETER。 函式不會針對不正確的格式字串傳回任何錯誤,但只會形成最佳的可能日期字串。

如果應用程式需要特定行事曆的日期格式,它應該使用 GetCalendarInfoGetCalendarInfoEx,並傳遞適當的 行事曆識別碼。 若要傳回特定行事曆的所有日期格式,應用程式可以使用EnumCalendarInfoExEnumCalendarInfoExExEnumDateFormatsEx 或 EnumDateFormatsEx。

指定替代行事曆

應用程式可以使用旗標呼叫 GetDateFormatGetDateFormatEx ,DATE_USE_ALT_CALENDAR使用指定之替代行事曆的預設格式。 如果替代行事曆沒有預設格式,函式會使用使用者覆寫。

若要取得替代行事曆的日期格式,應用程式可以使用GetLocaleInfo 或 GetLocaleInfoEx搭配LOCALE_IOPTIONALCALENDAR常數。

指定日期類型

如果應用程式想要使用簡短日期格式,它會在 呼叫 GetDateFormatGetDateFormatEx中指定DATE_SHORTDATE。 您可以在函式呼叫中指定DATE_LONGDATE,以取得完整日期格式。 如果未指定旗標,而且 lpFormat 設定為 Null,則函式會使用 DATE_SHORTDATE 做為預設值。

若要取得預設地區設定行事曆的簡短和完整日期格式,應用程式應該使用GetLocaleInfo 或 GetLocaleInfoEx函式搭配LOCALE_SSHORTDATELOCALE_SLONGDATE常數。

指定日期格式圖片

應用程式可以指定 GetDateFormatGetDateFormatEx 用來形成日期字串的日期格式圖片。 如果需要指定地區設定的日期格式,應用程式可以呼叫 lpFormat 設定為 Null的函式。 如果 參數未設定為 Null,則函式只會針對格式圖片字串中未指定的資訊使用地區設定,例如地區設定的日和月名稱。

應用程式可以在單引號內以完全格式括住任何文字。 單引號也可以用來做為逸出字元,以允許在日期字串中顯示標記本身。 不過,逸出序列必須括在兩個單引號內。 例如,若要將日期顯示為 「May '93」,格式字串為:「MMMM ''''yy 「。

擷取持續時間資訊

Windows Vista 和更新版本:GetDurationFormatGetDurationFormatEx函式可用來取得地區設定的持續時間格式,包括自訂地區設定。 若要取得地區設定的預設持續時間格式,應用程式應該使用GetLocaleInfo 或 GetLocaleInfoEx函式搭配LOCALE_SDURATION常數。

使用國家語言支援

時間和日期

使用永續性地區設定資料