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 時間段與秒數的轉換步驟

  1. 將時間段字串貼上輸入欄以轉換為秒數 在上方文字方塊中輸入"PT1H30M"這樣的ISO 8601時間段字串,會自動顯示總秒數與各單位的明細。
  2. 試試範例 點擊「插入示例」按鈕,會填入包含年月日時分秒的複合表示法範例,方便立即查看效果。
  3. 輸入秒數以轉換為時間段字串 在下方文字方塊中輸入想要轉換的總秒數,即可產生對應的ISO 8601時間段字串。
  4. 選擇轉換模式 選擇「使用年/月/日」可得到便於閱讀的表示法,選擇「僅使用日/時/分/秒」則不使用年月近似值,得到精確結果。
  5. 查看並複製結果 將顯示的總秒數、分鐘數、小時數、天數,或產生的時間段字串直接複製到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規範,它是無法與年月日或時刻部分組合使用的獨立表示法。

常見問題

PT1H30M是ISO 8601時間段表示法,表示"1小時30分鐘"。"P"標誌著時間段的開始,"T"標誌著時刻部分(時、分、秒)的開始——這一點很重要,因為沒有"T"時"1M"表示"1個月",而"T"之後的"1M"則表示"1分鐘"。

典型例子包括YouTube Data API的影片時長欄位(contentDetails.duration)、AWS和Google Cloud等雲服務的超時與有效期設定、以及播客RSS訂閱源(itunes:duration)。許多程式語言也支援解析和生成該格式,例如Java的Duration/Period類、Python的isodate庫等。

一年可能是365天或366天(取決於是否為閏年),一個月的天數也在28天到31天之間變化,因此兩者都不存在固定的秒數。本工具將365.25天作為一年的實用平均近似值(其十二分之一,約30.44天,作為一個月)。如果需要精確結果,建議使用"精確值"模式,僅用天、時、分、秒來表示時間段。

是的,本工具支援"P2W"(2周)這樣的W表示法。但需要注意,根據ISO 8601規範,W表示法是一種獨立的簡寫形式,不能與年月日或時刻部分組合使用。

如果輸入不以"P"開頭、單位順序不符合年→月→日、"T"之後時→分→秒的規則,或者所有單位都被省略(空時間段),本工具會判定為無法轉換,並顯示錯誤提示而非結果。
工具君

閒話 ― 計算機世界為何需要專門的"時間段"格式

ISO 8601以統一表示日期和時間的國際標準而廣為人知,但同一標準中其實也定義了"時間段(Duration)"的表示法——即兩個時間點之間的長度,而非某個具體的時間點。日期時間回答的是"何時",而時間段回答的是"多久",兩者看似相似,實則代表著性質完全不同的資訊。正是為了明確區分這一點,才有了以"P"開頭的專用記法。

時間段表示法在實踐中備受青睞的原因之一,是它能夠防止系統間資料交換時因單位理解不一致而產生的錯誤。例如,如果API響應只返回數字"30",呼叫方就必須查閱文件才能確定這是秒還是分鐘。而使用"PT30S"時,數值與單位被打包在同一個字串中,只要解析實現正確,就不可能產生誤解。

YouTube Data API之所以用ISO 8601格式返回影片時長,原因也在於此:"PT4M13S"這樣的字串能明確無誤地表示一段4分13秒的影片。AWS、Google Cloud等雲平臺的超時與有效期設定有時也採用相同的格式,如果在YAML配置檔案或JSON響應中看到這種記法,用本工具換算成秒數會更容易理解其實際含義。

與此同時,這一標準也有一個有趣的特性:包含年、月的時間段並不具有固定的絕對長度。同樣是"P1Y",是否跨越閏年會導致實際天數在365天與366天之間變化。歸根結底,本工具在涉及年、月的換算時不得不採用近似值,原因正在於此。