P2Y3DT6H8M!? この暗号を解読するための ISO 8601 duration specification とは

OpenADRで発動を受信する際に、duration(期間)というカラムに、”PT1H”という値が入っていたりします。
これはISO8601 duration specification(ISO8601 期間仕様)というルールに則って記述されています。

今回はこのISO8601 duration specificationの解読方法について、解説していきます。

期間の間隔指定子

期間を指定する際に使用される、間隔指定子の一覧になります。

間隔指定子 解説
Y
M
D
W 週。日付に変換されるのでDと組合せて使うことはできません。
H 時間
M
S

ISO8601 duration のフォーマット

ISO 8601の期間を表すフォーマットは以下のとおりです。

P[n]Y[n]M[n]DT[n]H[n]M[n]S

最初の1文字目は、”Period”を表すPから始まります。

次に数字+年月日の間隔指定子を記述します。
年月日を指定しない場合は、省略します。

年月日と時間の間にはTを記述します。
※Tは、時間コンポーネントの先行時間指定子です。

次に数字+時分秒の間隔指定子を記述します。

ISO8601 duration specificationを使ったサンプル

解説
P1Y 1年
P0.5Y 半年
PT36H 36時間
P1DT12H 1日12時間
PT1M 1分
P3Y2D 3年2日
PT12H30M5S 12時間30分5秒

まとめ

いかがでしたでしょうか。
このルールを踏まえて、タイトルの「P2Y3DT6H8M」を解読すると、2年3日6時間8分の期間を表しています。

記事をシェア
MOST VIEWED ARTICLES