ISO 8601 時間段(Duration)轉換工具
將ISO 8601時間段表示法(如PT1H30M)與秒數相互轉換。可用於解析YouTube API、AWS超時設定、播客RSS訂閱源等場景中使用的時間段格式,適合開發者使用。
ISO 8601 時間段表示法常見示例
ISO 8601時間段以"P"開頭,後接年、月、日,再以"T"開頭,後接時、分、秒。以下是常見的表示法及其對應的秒數。
| 表示法 | 總秒數 | 備註 |
|---|---|---|
| PT30S | 30 | 30秒超時設定等短時間的典型示例 |
| PT1H30M | 5,400 | 1小時30分鐘,常用於表示電影時長或YouTube影片長度 |
| P1D | 86,400 | 1天(24小時),常用於伺服器日誌保留期或快取有效期設定 |
| P3Y6M4DT12H30M5S | 110,842,205 | 相當於3年6個月4天12小時30分5秒的複合表示法示例(年、月按每年365.25天的近似值換算) |
ISO 8601 時間段(Duration)表示法是什麼
ISO 8601時間段表示法是一種用單一字串(如"P3Y6M4DT12H30M5S")表示兩個時間點之間「長度」的國際標準。日期時間回答的是「什麼時候」,時間段回答的是「多久」,兩者性質不同,因此規範中專門定義了以"P"開頭的獨立記法。
YouTube Data API回傳的影片時長、AWS和Google Cloud等雲端服務的逾時與有效期設定、播客RSS訂閱源的音訊長度,都會用到這種表示法。本工具可讓時間段字串與秒數即時互相轉換,協助你快速確認某個值究竟代表多久時間。
ISO 8601 時間段與秒數的轉換步驟
- 將時間段字串貼上輸入欄以轉換為秒數 在上方文字方塊中輸入"PT1H30M"這樣的ISO 8601時間段字串,會自動顯示總秒數與各單位的明細。
- 試試範例 點擊「插入示例」按鈕,會填入包含年月日時分秒的複合表示法範例,方便立即查看效果。
- 輸入秒數以轉換為時間段字串 在下方文字方塊中輸入想要轉換的總秒數,即可產生對應的ISO 8601時間段字串。
- 選擇轉換模式 選擇「使用年/月/日」可得到便於閱讀的表示法,選擇「僅使用日/時/分/秒」則不使用年月近似值,得到精確結果。
- 查看並複製結果 將顯示的總秒數、分鐘數、小時數、天數,或產生的時間段字串直接複製到API請求或設定檔中使用。
用好本工具的小技巧
- 包含年、月的時間段實際上沒有固定的秒數,因此本工具採用固定近似值:1年=365.25天,1個月=30.44天。
- 將秒數轉換為時間段字串時,選擇"僅使用日/時/分/秒"模式可以完全避免年月近似值,得到不受閏年影響的精確結果。
- YouTube Data API返回的影片時長欄位(contentDetails.duration)採用ISO 8601格式,可直接貼上到本工具中轉換為秒數。
- AWS Lambda、API Gateway等雲服務的超時設定有時會使用ISO 8601時間段表示法,本工具便於校驗這些配置值。
- 播客的RSS訂閱源除了常見的hh:mm:ss格式外,itunes:duration標籤有時也會使用ISO 8601時間段格式。
ISO 8601 時間段轉換的應用情境
解析YouTube Data API的回傳值
貼上contentDetails.duration回傳的"PT4M13S"之類的值,立即確認影片時長是多少分多少秒。
除錯AWS等雲端服務的設定值
驗證Step Functions或CloudFormation逾時設定中的時間段表示法實際對應多少秒或多少小時。
確認播客RSS音訊時長
當itunes:duration標籤使用ISO 8601格式時,可與常見的hh:mm:ss表示法對照,確認音訊長度。
對接行事曆與排程類API
根據秒數反推Google行事曆等API所需的重複間隔或提醒時間的時間段表示法。
為自製解析器撰寫測試案例
自行開發時間段解析器時,可用本工具校驗已知時間段字串對應的正確秒數,作為測試的期望值。
ISO 8601 時間段相關詞彙
- ISO 8601
- 規定日期、時間、時間段表示方法的國際標準。除了"2026-09-16"這樣的日期表示法外,本工具處理的時間段(Duration)表示法也是該標準的一部分。
- 時間段(Duration)
- 表示兩個時間點之間長度的值。與指向某一具體時刻的「日期時間」不同,時間段承載的是「經過了多久」這一差值資訊。
- PnYnMnDTnHnMnS 記法
- ISO 8601時間段表示法的基本格式。"P"後接年(Y)、月(M)、日(D),"T"後接時(H)、分(M)、秒(S),只列出需要的單位。
- 時間戳記
- 表示某一具體時間點的值。與表示差值的時間段不同,時間戳記表達的是「何時」這一絕對位置。
- RFC 3339
- 以ISO 8601為基礎、規定網際網路上日期時間表示法的規範。它定義了時間戳記表示法,但不包含時間段(Duration)表示法,後者是ISO 8601獨有的規定。
- 週表示法(PnW)
- 如"P2W"這樣僅用週數表示時間段的簡寫記法。根據ISO 8601規範,它是無法與年月日或時刻部分組合使用的獨立表示法。
常見問題
閒話 ― 計算機世界為何需要專門的"時間段"格式
ISO 8601以統一表示日期和時間的國際標準而廣為人知,但同一標準中其實也定義了"時間段(Duration)"的表示法——即兩個時間點之間的長度,而非某個具體的時間點。日期時間回答的是"何時",而時間段回答的是"多久",兩者看似相似,實則代表著性質完全不同的資訊。正是為了明確區分這一點,才有了以"P"開頭的專用記法。
時間段表示法在實踐中備受青睞的原因之一,是它能夠防止系統間資料交換時因單位理解不一致而產生的錯誤。例如,如果API響應只返回數字"30",呼叫方就必須查閱文件才能確定這是秒還是分鐘。而使用"PT30S"時,數值與單位被打包在同一個字串中,只要解析實現正確,就不可能產生誤解。
YouTube Data API之所以用ISO 8601格式返回影片時長,原因也在於此:"PT4M13S"這樣的字串能明確無誤地表示一段4分13秒的影片。AWS、Google Cloud等雲平臺的超時與有效期設定有時也採用相同的格式,如果在YAML配置檔案或JSON響應中看到這種記法,用本工具換算成秒數會更容易理解其實際含義。
與此同時,這一標準也有一個有趣的特性:包含年、月的時間段並不具有固定的絕對長度。同樣是"P1Y",是否跨越閏年會導致實際天數在365天與366天之間變化。歸根結底,本工具在涉及年、月的換算時不得不採用近似值,原因正在於此。