ISO 8601期間コンバーター
PT1H30MのようなISO 8601期間を秒や平易な言葉で読み書きできます。
ISO 8601期間コンバーターは完全にブラウザ内で動作します。入力した期間は端末上で解析され、送信されません。
期間コンバーターを開く
ISO 8601期間コンバーター について
ISO 8601の期間は、時間の長さがJSONを往復する場面で必ず現れます。schema.orgのマークアップ、Kubernetesのマニフェスト、XMLスキーマ、OpenAPIの例、.NETのTimeSpan書式などです。書式はP[n]Y[n]M[n]DT[n]H[n]M[n]Sで、誰もがつまずくのがMです。Tの前は月、後ろは分なので、P1MとPT1Mは約43,000倍違います。このコンバーターは期間を分解し、普通の文字列から組み立て、多くのライブラリが隠すこと、つまり月と年には決まった長さがないことを明示します。
機能
- 週、小数、負号を含む書式全体を解析
- Tの前後で月と分を正しく区別
- 秒、ミリ秒、分、時間、日での合計
- 期間を平易な言葉で表示
- 秒、時計表記、単位付き入力からISO期間を生成
- グレゴリオ暦の平均と30日/365日の切り替え
ISO 8601期間コンバーター の使い方
- ISO 8601の期間を貼り付けるか、生成モードに切り替えます
- 生成モードでは秒、時計表記、2d 4hのような入力を使います
- 合計値、項目の内訳、言葉による表現を読みます
- 月や年を含む場合は月の長さの前提を選びます
例
入力
P3Y6M4DT12H30M5S
出力
3 years, 6 months, 4 days, 12 hours, 30 minutes and 5 seconds
110,984,405 seconds (Gregorian average)
規格そのものの例です。二つのMが別の意味を持つことを思い出させてくれます。
よくあるエラーとトラブルシューティング
- P1MとPT1Mを同じものとして扱ってしまう。 — 別物です。Tの前のMは月、後ろのMは分です。Tの書き忘れが最も多い誤りです。
- 月を含む期間が別の実装では違う秒数になる。 — 月の長さが一定でないためです。30日とするもの、30.44日とするもの、実際の暦を使うものがあります。ここでは採用した前提を表示します。
よくある質問
- PT1H30Mはどういう意味ですか。
- 1時間30分です。Pが期間の始まり、Tが日付部と時刻部の区切りで、Tの後ろのMは分を表します。
- P1MとPT1Mの違いは。
- P1Mは1か月、PT1Mは1分です。区別するのはTだけなので、Tは省略できません。
- ISO 8601の期間を秒に直すには。
- 週以下は正確ですが、月と年は一定でないため前提が必要です。グレゴリオ暦の平均か30日かを選べます。
- ISO 8601の期間はどこで使われますか。
- schema.orgのマークアップ、KubernetesやPrometheusの設定、XMLスキーマの型、OpenAPIの例、.NETのTimeSpanなどです。
関連ツール
すべての ArrayKit ツール