支援版本: 目前 (17) / 16 / 15 / 14 / 13
開發版本: devel
不支援版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3

B.1. 日期/時間輸入解析 #

日期/時間輸入字串會使用以下程序進行解碼。

  1. 將輸入字串分解為 token,並將每個 token 分類為字串、時間、時區或數字。

    1. 如果數字 token 包含冒號 (:),則這是一個時間字串。包含所有後續的數字和冒號。

    2. 如果數字 token 包含破折號 (-)、斜線 (/) 或兩個或多個點 (.),則這是一個日期字串,可能包含文字月份。如果已經看到一個日期 token,則將其解釋為時區名稱(例如,America/New_York)。

    3. 如果 token 僅為數字,則它是一個單個欄位或一個 ISO 8601 連接的日期(例如,19990113 代表 1999 年 1 月 13 日)或時間(例如,141516 代表 14:15:16)。

    4. 如果 token 以加號 (+) 或減號 (-) 開頭,則它是一個數字時區或一個特殊欄位。

  2. 如果 token 是一個字母字串,請與可能的字串匹配

    1. 查看 token 是否與任何已知的時區縮寫匹配。這些縮寫由 第 B.4 節中描述的設定檔提供。

    2. 如果找不到,請搜尋內部表格以將 token 匹配為特殊字串(例如,today)、星期幾(例如,Thursday)、月份(例如,January)或雜訊單字(例如,aton)。

    3. 如果仍然找不到,則拋出錯誤。

  3. 當 token 是一個數字或數字欄位時

    1. 如果有八個或六個數字,並且之前沒有讀取過其他日期欄位,則將其解釋為連接日期(例如,19990118990118)。解釋為 YYYYMMDDYYMMDD

    2. 如果 token 是三個數字並且已經讀取年份,則將其解釋為一年中的第幾天。

    3. 如果四個或六個數字並且已經讀取年份,則將其解釋為時間 (HHMMHHMMSS)。

    4. 如果三個或更多數字並且尚未找到任何日期欄位,則將其解釋為年份(這會強制其餘日期欄位的 yy-mm-dd 順序)。

    5. 否則,假設日期欄位排序遵循 DateStyle 設定:mm-dd-yy、dd-mm-yy 或 yy-mm-dd。如果發現月份或日期欄位超出範圍,則拋出錯誤。

  4. 如果已指定 BC,則將年份取反並加一以進行內部儲存。(格里曆中沒有零年,因此數值上西元前 1 年變為零年。)

  5. 如果未指定 BC,並且年份欄位長度為兩位數,則將年份調整為四位數。如果該欄位小於 70,則加上 2000,否則加上 1900。

    提示

    可以使用帶有前導零的 4 位數字輸入西元 1–99 年(例如,0099 是西元 99 年)。

提交更正

如果您在文件中看到任何不正確、與特定功能的體驗不符或需要進一步澄清的內容,請使用此表格來報告文件問題。