擷取時間和日期資訊
本主題包含在您的應用程式中使用 NLS 函式來擷取 時間和日期 資訊的指示,以及持續時間資料。 如果您的應用程式必須保存資料,請參閱 使用持續性地區設定資料。
Windows Vista 和更新版本: 本主題中討論的函式可以從 自訂地區設定擷取資料。 特別是,它們可以用來自訂時間和日期格式。 例如,可能會有時間格式,例如 「hhHmm'ss'」,因此會產生時間字串,例如 「12H34'12'''」。
擷取時間資訊
您的應用程式可以使用 GetTimeFormat 和 GetTimeFormatEx 函式,隨時取得適用于目前地區設定的格式字串。 任一函式都會檢查有效 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 呼叫 GetTimeFormat 或 GetTimeFormatEx 。 除非設定TIME_NOTIMEMARKER旗標,否則函式會顯示任何現有的時間標記。
擷取日期資訊
應用程式可以使用 GetDateFormat 和 GetDateFormatEx 函式,擷取適用于目前地區設定之任何日期的字串。 任一函式都會檢查有效 SYSTEMTIME 結構中的每一個日期值年、月、日和星期幾,並忽略結構的時間部分。 日期名稱、縮寫日期名稱、月份名稱和縮寫月份名稱都會根據地區設定識別碼進行當地語系化。 如果星期數不正確,函式會使用正確的值,而且不會傳回錯誤。 如果其他任何日期值超出正確的範圍,函式會失敗並顯示程式碼ERROR_INVALID_PARAMETER。 函式不會針對不正確的格式字串傳回任何錯誤,但只會形成最佳的可能日期字串。
如果應用程式需要特定行事曆的日期格式,它應該使用 GetCalendarInfo 或 GetCalendarInfoEx,並傳遞適當的 行事曆識別碼。 若要傳回特定行事曆的所有日期格式,應用程式可以使用EnumCalendarInfoEx、EnumCalendarInfoExEx、EnumDateFormatsEx 或 EnumDateFormatsEx。
指定替代行事曆
應用程式可以使用旗標呼叫 GetDateFormat 或 GetDateFormatEx ,DATE_USE_ALT_CALENDAR使用指定之替代行事曆的預設格式。 如果替代行事曆沒有預設格式,函式會使用使用者覆寫。
若要取得替代行事曆的日期格式,應用程式可以使用GetLocaleInfo 或 GetLocaleInfoEx搭配LOCALE_IOPTIONALCALENDAR常數。
指定日期類型
如果應用程式想要使用簡短日期格式,它會在 呼叫 GetDateFormat 或 GetDateFormatEx中指定DATE_SHORTDATE。 您可以在函式呼叫中指定DATE_LONGDATE,以取得完整日期格式。 如果未指定旗標,而且 lpFormat 設定為 Null,則函式會使用 DATE_SHORTDATE 做為預設值。
若要取得預設地區設定行事曆的簡短和完整日期格式,應用程式應該使用GetLocaleInfo 或 GetLocaleInfoEx函式搭配LOCALE_SSHORTDATE或LOCALE_SLONGDATE常數。
指定日期格式圖片
應用程式可以指定 GetDateFormat 或 GetDateFormatEx 用來形成日期字串的日期格式圖片。 如果需要指定地區設定的日期格式,應用程式可以呼叫 lpFormat 設定為 Null的函式。 如果 參數未設定為 Null,則函式只會針對格式圖片字串中未指定的資訊使用地區設定,例如地區設定的日和月名稱。
應用程式可以在單引號內以完全格式括住任何文字。 單引號也可以用來做為逸出字元,以允許在日期字串中顯示標記本身。 不過,逸出序列必須括在兩個單引號內。 例如,若要將日期顯示為 「May '93」,格式字串為:「MMMM ''''yy 「。
擷取持續時間資訊
Windows Vista 和更新版本:GetDurationFormat和GetDurationFormatEx函式可用來取得地區設定的持續時間格式,包括自訂地區設定。 若要取得地區設定的預設持續時間格式,應用程式應該使用GetLocaleInfo 或 GetLocaleInfoEx函式搭配LOCALE_SDURATION常數。
相關主題