🕑

ISO8601 について

2021/05/21に公開
2

ISO8601 をよく理解できていなかったので、ISO8601 について書いてみました。

概要

ISO8601 とは、[1]ISOで定められた日付と時刻の表記に関する国際規格 のこと

ISO8601 の形式

  • 日付と時刻を「T」で区切る
  • 以下の表記の仕方で、タイムゾーンごとの違いを表現する
    • [2]UTC : 秒の後に「Z」を付ける
    • その他のタイムゾーン : 秒の後に「±時間」をつける

例: 2021年5月21日 14:00

  • UTC : 2021-05-21T05:00:00Z
  • [3]JST : 2021-05-21T14:00:00+09:00

形式について

形式には「基本形式」と「拡張形式」の2つがあり、表記内に「区切りを入れて見やすくしているかどうか」という違いがあります。

  • 基本形式 : YYYYMMDDThhmmss
  • 拡張形式 : YYYY-MM-DDThh:mm:ss

基本形式と拡張形式の混在はできないので、どちらかに統一する必要があります。

年月日と時間の形式

  • 年 : YYYY
  • 月 : MM(01から12)
  • 日 : DD
  • 時 : hh(00から24)
  • 分 : mm(00から59)
  • 秒 : ss(00から59(閏秒に60をとる))

年月日で使用出来る形式

  • YYYYMMDD
  • YYYY-MM-DD
  • YYYY-MM(YYYYMMは使用できない)
  • YYYY

時間について

「00:00」は日の初め、「24:00」は日の終わりを表します。

例 : 「2021-05-21T24:00:00Z」と「2021-05-22T00:00:00Z」は同じ日付

タイムゾーンの形式

  • +hh:mm
  • +hhmm
  • +hh
脚注
  1. 国際標準化機構。国際的な標準の「国際規格」を策定している。 ↩︎

  2. 協定世界時 ↩︎

  3. 日本標準時。UTCより9時間進んでいる ↩︎

Discussion

shinriyoshinriyo

コメント失礼します。

例: 2021年5月21日 14:00
UTC : 2021-05-21T14:00:00Z
JST : 2021-05-21T14:00:00+09:00


こちらですが、UTCとJSTで時間が変わってくるかと思います。
単に現在時刻を意識していないフォーマットの書き方の説明でしたらすみません。

9時間ずれるのでこうなるかと思います。
5時+9時間=14時

例: 2021年5月21日 14:00(日本の実際の時刻)
UTC : 2021-05-21T05:00:00Z
JST : 2021-05-21T14:00:00+09:00
やすやす

確かにそうですね、修正しておきます ^_^

ご指摘ありがとうございます!