獲取日期和時間資訊
本主題包含在應用程式中使用 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旗標,函式會根據指定的地區設定標識符來當地語系化時間標記。
移除之前分鐘和秒的分隔符號
您的應用程式可以呼叫 GetTimeFormat 或 GetTimeFormatEx,並指定 TIME_NOMINUTESORSECONDS 或 TIME_NOSECONDS,以移除分鐘和/或秒元素後面的分隔符。
使用 24 小時時間格式
如果您的應用程式支援 24 小時制格式,則可以使用 TIME_FORCE24HOURFORMAT 呼叫 GetTimeFormat 或 GetTimeFormatEx。 除非設定TIME_NOTIMEMARKER旗標,否則函式會顯示任何現有的時間標記。
取得日期資訊
應用程式可以使用 GetDateFormat 和 GetDateFormatEx 函式,擷取適用於目前地區設定之任何日期的字元串。 任一函式會檢查有效 SYSTEMTIME 結構中的每一個日期值年、月、日和星期幾,忽略結構的時間部分。 日期名稱、縮寫的日期名稱、月份名稱和縮寫月份名稱都會根據地區設定標識符進行當地語系化。 如果星期天不正確,函式會使用正確的值,而且不會傳回任何錯誤。 如果其他任何日期值都超出正確的範圍,函式就會失敗,且錯誤代碼為ERROR_INVALID_PARAMETER。 函式不會針對不正確的格式字串傳回任何錯誤,但只會形成最佳的日期字串。
如果應用程式需要特定行事曆的日期格式,應該使用 GetCalendarInfo 或 GetCalendarInfoEx,傳遞適當的 行事曆標識符。 若要傳回特定行事曆的所有日期格式,應用程式可以使用 EnumCalendarInfoEx、EnumCalendarInfoEx、EnumDateFormatsEx或 EnumDateFormatsExex。
指定替代行事曆
應用程式 可以使用旗標 DATE_USE_ALT_CALENDAR 呼叫 GetDateFormat 或 GetDateFormatEx,以使用指定替代行事曆的預設格式。 如果替代性日曆沒有預設排版,函式會使用使用者自訂設定。
若要取得替代行事曆的日期格式,應用程式可以使用 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 常數。
相關主題