ISO 8601

ISO 8601是一個涵蓋日期和時間相關數據的全球交換和通信的國際標準。它由國際標準化組織（ISO）維護，於1988年首次發布，並於1991年、2000年、2004年和2019年進行了更新，並於2022年進行了修訂。該標準提供了一種以數字編寫日期和時間的明確定義，用明確的方法來表示全球通信中的日曆日期和時間，特別是為了避免在具有不同慣例的國家/地區之間，傳輸此類數據時誤解數字日期和時間。

ISO 8601 適用於以下表示和格式：日期，使用格里曆（包括儒略曆）；時間，基於24小時計時系統，可選擇UTC偏移量；時間間隔；及其組合。該標準未為所代表的日期/時間的任何元素賦予特定含義：任何元素的含義取決於其使用的上下文。所表示的日期和時間不能使用標準中不具有特定數字含義的詞語（因此不包括中國曆法中的中國曆法對應表），或不使用電腦字元（不包括圖像或聲音）。

在遵守 ISO 8601「交換標準」的表示中，日期和時間的排列方式是，最大的時間項（通常是「年」）放在左邊，接續較小的每個時間項放在前一個項目的右側。每個項目的表示必須以阿拉伯數字的組合書寫，以及在標準中被賦予特定含義的特定電腦字元（例如「-」、「:」、「T」、「W」、「Z」）；也就是說，交換標準內的表示中不允許使用「一月」、「星期四」或「元旦」等常見的日期描述符（或部分日期）。

## 歷史

第一版ISO 8601標準於1988年發布，為「ISO 8601:1988」。它統一並取代了各個方面的許多舊的ISO標準日期和時間表示法：ISO 2014、ISO 2015、 ISO 2711、ISO 3307、和ISO 4031。它持續更新：第二版「ISO 8601:2000」，第三版「ISO 8601:2004」於2004年12月1日發布，「ISO 8601-1:2019」和「ISO 8601-2:2019」，於2019年2月25日發布，並被這些新版本取代。ISO 8601由以下人員編寫並直接負責：ISO技術委員會TC 154。

ISO 2014，雖然已被取代，但最初以最重要到最低有效順序引入全數字日期表示法的標準YYYY-MM-DD依然被採用。ISO週編號系統是在ISO 2015引入的；按序數日期識別天數最初在 ISO 2711中定義。

於2019年2月發出ISO標準的第四次修訂；ISO 8601-1:2019 代表先前 的略有更新內容；ISO 8601:2004標準，而新的ISO 8601-2:2019定義各種擴展，例如不確定性或擴充日期/時間格式（EDTF）。

ISO 8601-1的修正案於2022年10月發布，其中包括一些小的技術澄清，並試圖消除定義中的歧義。然而，最顯著的變化是重新引入了「24:00:00」的格式，以指出日曆日「結束」的瞬間。

ISO 8601-2的修正案於2025年1月發布。

名稱｜描述

ISO 8601:1988｜資料元素和交換格式 — 資訊交換 — 日期和時間的表示

ISO 8601:1988/COR 1:1991｜資料元素和交換格式 — 資訊交換 — 日期和時間的表示 — 技術勘誤1

ISO 8601:2000｜資料元素和交換格式 — 資訊交換 — 日期和時間的表示

ISO 8601:2004｜資料元素和交換格式 — 資訊交換 — 日期和時間的表示

ISO 8601-1:2019｜日期及時間 — 資料交換的申述 — 第1部分：基本規則

ISO 8601-2:2019｜日期和時間 — 資訊交換的陳述 — 第2部分：擴展

ISO 8601-1:2019/Amd 1:2022｜日期和時間 — 資訊交換的陳述 — 第1部分：基本規則 — 修正案1：技術更正

ISO 8601-2:2019/Amd 1:2025｜日期和時間 — 資訊交換的表示 — 第2部分：擴展 — 修正案1：規範表達式、時間尺度組件的擴展和日期時間算術

## 基本原則

- 時間日期按照年月日時分秒的順序排列，大時間單位在小時間單位之前。除了公元前的時刻外，用本標準表示的兩個時刻中較早者在字典序上先於較晚者。這個特性有利於按時間排序。
- 每個時間單位的位數固定，不足時於左補0。
- 本標準提供兩種方法來表示時間：其一爲衹有數字的基礎格式；其二爲添加分隔符的擴展格式，從而更易讀。標準原文建議「應避免在純文本中使用基礎格式」。擴展格式使用連字符「-」來分隔日期，使用冒號「:」來分隔時間。比如2009年1月6日在擴展格式中可以寫成「2009-01-06」，在基本格式中可以簡單地寫成「20090106」而不會產生歧義。
- 精度不足時，可以從右側開始忽略日期或時間的某個單位。比如2004年5月可以表示爲「2004-05」（第五個月）。這種格式永遠不會表示2004年未指定月份的第5天，也不會表示從2004年至2005年。
- 實際運用中需要更高的精度時，可以在秒數後添加十進制小數。

## 日期表示法

ISO 8601使用公曆。ISO 8601:2004規定了一個參考日期，即1875年5月20日，當天《米制公約》在巴黎簽署；ISO 8601-1:2019刪除了這個明確的參考日期。不過公曆自1582年10月15日公布後，到米制公約簽署前的日期，也一直適用此標準。

至於公布公曆前的日期，若通信雙方達成一致，也可以用前推公曆表示。標準要求所有日期必須連續，因此需要向前推導這些日子在格里曆中對應的日期，而使用儒略曆將違反標準。

### 年份

爲了規避千年蟲問題，標準要求至少使用四位數來表示年份，形如「YYYY」。這樣可以表示0000至9999的年份，其中0000意爲公元前1年，如同天文紀年。不過這並不完全適用於1583年之前的年份。標準規定「0000至1582的年份僅應在雙方有共識時用於通信」。

若要表示前1年之前或9999年之後的年份，標準也允許通信雙方達成共識後擴展表達方式。雙方應事先規定增加的位數，並且年份前必須有正號「+」或負號「-」而不使用「AD/BC」或「CE/BCE」表示之。依據標準，若年份帶符號，則前1年爲「+0000」，前2年爲「-0001」，依此類推。

### 月份和日期

月份和日各使用兩位數字表示。月份在01到12之間，日期在01到31之間。表示日期的基本格式爲「YYYYMMDD」，擴展格式爲「YYYY-MM-DD」。例如，1919年8月10日可以表示爲「19190810」或「1919-08-10」。

標準也允許更低的精度。例如「1919-08」表示1919年8月（不可以表示爲「191908」以防止有人理解爲2019年19月8日），「1919」表示1919年，「191」表示二十世紀的第二個十年，「19」表示二十世紀。表示二十一世紀的某年時，ISO 8601:2000允許省去年份的前兩位，形如「YYMMDD」，相當於「20YY-MM-DD」，但是ISO 8601:2004禁止了這種表示方式。

### 順序日期表示法

完全表示：可以將一年內的天的序數用3位數字表示，平年365天，閏年366天。如2004年5月3日可以表示為2004-124或2004124。

### 星期日曆表示法

使用年份和星期表示某一日期的格式形如YYYYWwwD或YYYY-Www-D，YYYY表示年份，其值與年月日格式中的年份略有差別；Www表示該日期所屬星期是今年的第幾個星期，範圍在W01到W53之間；D表示該日是本星期的第幾天，範圍在1到7之間，每個星期以周一作爲第一天。例如1926年8月17日可寫成1926-W33-2或1926W332。

每年的第一個星期可以用如下方法決定：

- 本年度第一個星期四所在的星期。
- 1月4日所在的星期。
- 本年度第一個至少有4天在同一星期內的星期。
- 星期一在去年12月29日至今年1月4日以內的星期。

推理可得，如果1月1日是星期一、星期二、星期三或者星期四，它所在星期就是本年第一個星期；如果1月1日是星期五、星期六或星期日，則它所在星期就是上一年第52或者53個日曆星期；12月28日總是在一年最後一個星期。

### 日曆星期表示法

可以用2位數表示本年內第幾個日曆星期，但日曆星期前要加上一個大寫字母W。

其他規定同星期日曆表示法。

例如，如2004年第19個星期可寫成：2004-W19或2004W19。

## 日期時間表示法

只使用數字為基本格式。使用冒號「:」間隔開小時、分、秒的為擴展格式。小時、分和秒都用2位數表示。

對於當地時間15時27分46秒。

- 完全表示：152746或15:27:46
- 預設小時的特定分和秒：-2746或-27:46
- 降低精度僅有小時和分：1528或15:28
- 預設小時的特定分：-28
- 預設日的特定小時：15
- 帶有小數的當地時間的完全表示：152735.5或15:27:35.5
- 預設小時的分，帶有小數的秒：-2735.5或-27:35.5
- 午夜，一日的開始：完全表示為000000或00:00:00；僅有小時和分表示為0000或00:00
- 午夜，一日的終止：完全表示為240000或24:00:00；僅有小時和分表示為2400或24:00
- 如果時間在零時區，並恰好與協調世界時相同，那麼（不加空格地）在時間最後加一個大寫字母Z。Z是相對協調世界時時間0偏移的代號。如下午2點30分5秒表示為14:30:05Z或143005Z；只表示小時和分，為1430Z或14:30Z；只表示小時，則為14Z或14Z。
- 其他時區用實際時間加時差表示，當時的UTC+8時間表示為22:30:05+08:00或223005+0800，也可以簡化成223005+08。

## 日期和時間的組合表示法

合併表示時，要在時間前面加一大寫字母T，如要表示東八區時間2004年5月3日下午5點30分8秒，可以寫成2004-05-03T17:30:08+08:00或20040503T173008+08。

## 時間段表示法

如果要表示某一作為一段時間間隔，前面加一大寫字母P，但時間段後都要加上相應的代表時間的大寫字母。如在一年三個月五天六小時七分三十秒內，可以寫成P1Y3M5DT6H7M30S。

## 時間間隔表示法

從一個時間開始到另一個時間結束，或者從一個時間開始持續一個時間間隔，要在前後兩個時間（或時間間隔）之間放置斜線符「/」。格式為以下中的一種：

```
<起始時間>/<結束時間>
<起始時間>/<時長>
<時長>/<結束時間>
<時長>
```

例如19850412/19860101，19850412/P6M。

## 循環時間表示法

前面加上一大寫字母R，格式為：

```
R【循环次数】【/开始时间】/时间间隔【/结束时间】
```

如要從2004年5月6日北京時間下午1點起時間間隔半年零5天3小時循環，且循環3次，可以表示為R3/20040506T130000+08/P0Y6M5DT3H0M0S。

如以1年2個月為循環間隔，無限次循環，最後循環終止於2025年1月1日，可表示為R/P1Y2M/20250101。

## 對應的各地標準

- 中華民國國家標準CNS 7648《資料元件及交換格式－資訊交換－日期及時間表示法》與ISO 8601:2004等效採用。
- 中華人民共和國國家標準GB/T 7408-2005《數據元和交換格式 資訊交換 日期和時間表示法》與ISO 8601:2000等效採用。

## 基本資料

- 日期和時間、與偏移量：UTC-12:00、UTC+00:00
- 序數日期：‐3
- 頭銜：根據ISO 8601表示的當前日期和時間、重新整理
- 伴隨節目：UTC的日期
- 唱片公司：UTC的時間
- 唱片公司：UTC的、日期和時間
- 唱片公司：週數