
インターネットやパソコンを使っていると、
「2026-08-16T12:30:00+09:00」
「2026-08-16T03:30:00Z」
といった、少し変わった日付や時刻を見かけることがあります。
普通の「2026年8月16日 12時30分」と比べると、TやZ、「+09:00」などが付いているため、「これは何を意味しているの?」と思う方もいるでしょう。
こうした日付や時刻の表記でよく使われているのが「ISO 8601」です。
ISO 8601は、日付や時刻を一定のルールで表すための国際規格です。Webサービスやアプリ、システム間のデータ交換など、さまざまな場面で利用されています。
さらにISO 8601には、日付や時刻だけでなく、タイムゾーンを示す「Z」や「+09:00」、秒より細かい時間を示す小数部分、「P1D」のような期間を表す方法などもあります。
この記事では、ISO 8601とは何なのか、基本的な日付・時刻の読み方から、日本時間への変換、タイムゾーン、ミリ秒、P1Dなどの期間表記まで、初心者向けにわかりやすく解説します。
ISO 8601とは?
ISO 8601とは、日付や時刻などを統一された形式で表すための国際規格です。
たとえば、日本では日付を
2026年8月16日
と書くのが一般的です。
一方、国や地域によっては、
08/16/2026
16/08/2026
などのように、月・日・年の並び方が異なる場合があります。
数字だけで「08/09/2026」と書かれていると、8月9日なのか9月8日なのか、表記方法を知らなければ判断できません。
そこで、日付や時刻を一定のルールで表せるようにしたものの一つがISO 8601です。
ISOは「International Organization for Standardization(国際標準化機構)」のことで、ISO 8601は日時に関する国際規格として使われています。
簡単にいうと「日付や時刻を共通ルールで表す方法」
ISO 8601を簡単にいうと、
「日付や時刻などを、共通のルールで表すための規格」
と考えるとわかりやすいでしょう。
代表的な日付表記は、
2026-08-16
です。
「年→月→日」の順番で並んでいるため、日本人にとっても比較的わかりやすい形式です。
時刻まで含める場合には、
2026-08-16T12:30:00
のように表せます。
さらにタイムゾーンまで含めると、
2026-08-16T12:30:00+09:00
のような表記もできます。
一見すると複雑ですが、それぞれの記号には意味があります。

例:
2026-08-16 | T | 12:30:00 | +09:00
日付 区切り 時刻 UTCとの差
このように分解すると、ISO 8601の日時がぐっと読みやすくなります。
ISO 8601が使われている理由
ISO 8601が便利なのは、日時の表し方を統一しやすいことです。
たとえば、
2026-08-16
なら、
2026年 → 08月 → 16日
という順番になっています。
「年→月→日」の順番なので、文字列として並べても日付順に整理しやすいという特徴があります。
また、タイムゾーンを含めれば「どの地域を基準にした時刻なのか」も示せます。
インターネットでは世界中のコンピューターがデータをやり取りするため、日時を統一した形式で扱えることには大きなメリットがあります。
ISO 8601はどんなところで使われている?
ISO 8601形式の日時は、普段の生活で手書きする機会はそれほど多くありません。
一方、コンピューターやインターネットの世界ではよく登場します。
たとえば、
・Webサービス
・アプリ
・APIによるデータのやり取り
・データベース
・ログ
・クラウドサービス
・プログラムの設定ファイル
などです。
Webページやアプリの内部では、
2026-08-16T03:30:00Z
のような形式で日時が記録されていることがあります。
そのため、プログラミングをしていない人でも、Webサービスのデータを確認したときなどにISO 8601を目にすることがあります。
ISO 8601の日付の書き方
ISO 8601を理解するときは、まず日付だけの形式から覚えると簡単です。
代表的な形式は、
YYYY-MM-DD
です。
基本は「YYYY-MM-DD」
YYYY-MM-DDは、それぞれ次の意味です。
YYYY:年
MM:月
DD:日
たとえば、
2026-08-16
なら、
2026:年
08:月
16:日
となり、「2026年8月16日」を表します。
日本で一般的な「年→月→日」と同じ順番なので、ここは比較的理解しやすいでしょう。
月や日は2桁で表す
ISO 8601の日付では、月や日は通常2桁で表します。
たとえば、2026年4月5日なら、
2026-04-05
となります。
「2026-4-5」ではなく、
2026-04-05
のように、4月は「04」、5日は「05」とします。
桁数がそろうため、コンピューターで日時を扱う場合にも便利です。
ハイフンなしで書く形式もある
ISO 8601には、
20260816
のように、ハイフンを使わずに日付を書く形式もあります。
ハイフンを使った
2026-08-16
は拡張形式、
ハイフンを使わない
20260816
は基本形式
と呼ばれます。
どちらもISO 8601で扱われる表記ですが、人が読む場合には「2026-08-16」のほうが日付の区切りがわかりやすいでしょう。
日本の日付表記との違い
日本では、
2026年8月16日
2026/8/16
2026.8.16
など、さまざまな書き方が使われています。
ISO 8601の代表的な表記では、
2026-08-16
のように「年-月-日」の順で表します。
日本の日付表記と順番が同じなので、日本人にとってISO 8601の日付部分そのものは、それほど難しくありません。
難しく感じやすくなるのは、ここに時刻やタイムゾーンが加わった場合です。
たとえば、
2026-08-16T12:30:00+09:00
となると、Tや「+09:00」が登場します。
しかし、これもパーツごとの意味を知れば簡単に読み解けます。
次は、ISO 8601の時刻の書き方と「T」が何を意味しているのかを見ていきましょう。
ISO 8601の時刻の書き方
ISO 8601では、日付だけでなく時刻も一定の形式で表すことができます。
たとえば、
2026-08-16T12:30:00
という表記を見てみましょう。
前半の「2026-08-16」が日付、後半の「12:30:00」が時刻です。
そして、その間にある「T」が日付と時刻の区切りを表しています。
「T」は日付と時刻の区切り
ISO 8601の日時では、
2026-08-16T12:30:00
のように、日付と時刻の間に「T」が使われます。
分解すると、
2026-08-16:日付
T:日付と時刻の区切り
12:30:00:時刻
となります。
「T」はタイムゾーンを意味する記号ではありません。
日付部分と時刻部分を区切るための記号と覚えておくとよいでしょう。
時・分・秒はどう読む?
時刻部分は、
hh:mm:ss
の形で表すことができます。
それぞれ、
hh:時
mm:分
ss:秒
を意味します。
たとえば、
12:30:45
なら、
12時30分45秒
です。
日時全体が、
2026-08-16T12:30:45
なら、
2026年8月16日 12時30分45秒
と読むことができます。
ただし、ここで注意したいのが「どこの時刻なのか」という点です。
12時30分と書かれていても、それだけでは日本の12時30分なのか、世界の別の地域の12時30分なのかわからない場合があります。
そこで関係してくるのが、タイムゾーンやUTCなどの考え方です。
ISO 8601のタイムゾーンとは?
ISO 8601の日時を理解するときに、少しわかりにくいのが「タイムゾーン」「UTC」「JST」「Z」「+09:00」といった言葉です。
どれも世界各地の時刻を正しく扱うために関係しています。
まずは、それぞれが何を意味するのか整理しておきましょう。
タイムゾーンとは?
タイムゾーンとは、簡単にいうと「世界の地域ごとに使われている標準時の区分」です。
地球上では場所によって太陽が昇ったり沈んだりする時間が違うため、世界中が同じ時計の時刻で生活しているわけではありません。
たとえば、日本が昼の12時でも、世界の別の地域では早朝だったり深夜だったりします。
こうした地域ごとの時刻を扱うために使われているのがタイムゾーンです。
日本では日本標準時(JST)が使われています。
UTCとは?
UTCとは「協定世界時」のことで、世界の時刻を合わせたり比較したりするときの基準となる時刻です。
簡単に考えるなら、
UTC = 世界の時刻を考えるときの基準
と覚えておくとわかりやすいでしょう。
日本標準時はUTCより9時間進んでいます。
たとえば、
UTC 03:00
↓
9時間進める
↓
日本時間 12:00
となります。
このUTCとの差が、日本時間を理解するときの重要なポイントです。
JSTとは?
JSTとは「Japan Standard Time」の略で、日本標準時のことです。
私たちが日本で普段使っている時刻がJSTです。
日本標準時はUTCより9時間進んでいるため、
JST = UTC+09:00
という関係になります。
日本では現在サマータイムを実施していないため、UTCとの時差は年間を通して9時間です。
ISO 8601の「Z」とは?
ISO 8601の日時では、
2026-08-16T03:30:00Z
のように、最後に「Z」が付いていることがあります。
このZは、その日時がUTCであることを示します。
つまり、
2026-08-16T03:30:00Z
なら、
UTCで2026年8月16日 3時30分
という意味です。
Zは「Zulu(ズールー)」とも呼ばれます。
ここで大切なのは、
Z = 日本時間
ではないということです。
Zが付いているUTCの時刻を日本時間に直す場合は、基本的に9時間進めます。
「+09:00」とは?
ISO 8601では、
2026-08-16T12:30:00+09:00
という表記もあります。
最後の、
+09:00
は、UTCより9時間進んでいることを示すUTCオフセットです。
日本標準時はUTCより9時間進んでいるため、
UTC+09:00
となります。
そのため、
2026-08-16T12:30:00+09:00
は、日本時間として読むことができます。
ただし、
+09:00 = JSTそのもの
という意味ではありません。
「+09:00」は、あくまでUTCとの時差がプラス9時間であることを示しています。
世界には日本以外にもUTC+09:00を使用する地域があります。
タイムゾーンとUTCオフセットは同じ?
タイムゾーンとUTCオフセットは、似ていますが厳密には同じものではありません。
UTCオフセットは、
+09:00
-05:00
などのように、UTCから何時間・何分ずれているかを示すものです。
一方、タイムゾーンは地域ごとの時刻のルールを表す、より広い考え方です。
タイムゾーンによっては、季節によってUTCとの時差が変化することもあります。
タイムゾーン:地域ごとの時刻のルール
UTCオフセット:UTCとの時差
と考えるとわかりやすいでしょう。
UTC・JST・Z・+09:00の関係を整理
ここまでの関係をまとめると、次のようになります。
| 用語・表記 | 簡単な意味 |
|---|---|
| タイムゾーン | 地域ごとの時刻のルール |
| UTC | 世界の時刻を考える基準 |
| JST | 日本標準時 |
| Z | UTCであることを示す表記 |
| +09:00 | UTCより9時間進んでいることを示すUTCオフセット |
たとえば、
2026-08-16T03:30:00Z
と、
2026-08-16T12:30:00+09:00
は、表示されている時刻は違います。
しかし、どちらも同じ瞬間を表しています。
UTCでは3時30分、その瞬間の日本では12時30分だからです。

タイムゾーンがない日時はどう考える?
では、
2026-08-16T12:30:00
のように、Zも「+09:00」などのUTCオフセットも付いていない場合はどうでしょうか。
この表記だけでは、その時刻がUTCなのか日本時間なのかを判断できません。
そのため、
「Zが付いていないから日本時間」
と考えるのは間違いです。
実際にどの地域の時刻として扱われるかは、その日時を利用しているシステムやアプリなどの仕様を確認する必要があります。
ISO 8601形式の日時を見るときは、
Zが付いているか
+09:00などのUTCオフセットが付いているか
何も付いていないか
まで確認することが大切です。
ISO 8601を日本時間に変換する方法
ISO 8601の日時でよくある疑問が、
「この時刻を日本時間にすると何時?」
というものです。
特に末尾に「Z」が付いている場合は、日本時間への変換が必要になります。
UTCから日本時間へ変換する基本
日本標準時(JST)はUTCより9時間進んでいます。
そのため、
UTC → 日本時間
に変換するときは、基本的に9時間を加えます。
たとえば、
2026-08-16T03:00:00Z
なら、
03:00 + 9時間 = 12:00
となるため、日本時間では、
2026年8月16日 12時00分
です。

日付が変わる場合に注意
UTCから日本時間へ変換すると、日付が変わる場合があります。
たとえば、
2026-08-16T20:00:00Z
を日本時間へ変換してみましょう。
UTCの20時に9時間を加えると、
20:00 + 9時間 = 翌日の05:00
です。
したがって、日本時間では、
2026年8月17日 05時00分
となります。
単純に時刻だけを見るのではなく、9時間を加えた結果、日付が翌日に変わる可能性にも注意しましょう。

「+09:00」が付いている場合は変換が必要?
たとえば、
2026-08-16T12:30:00+09:00
と書かれている場合、
「+09:00だから12時30分にさらに9時間を足すの?」
と思うかもしれません。
しかし、日本時間として確認したいのであれば、さらに9時間を足す必要はありません。
「+09:00」は、すでにその日時がUTCより9時間進んだUTCオフセットで表されていることを示しています。
つまり、
2026-08-16T12:30:00+09:00
なら、日本時間ではそのまま、
2026年8月16日 12時30分
と読むことができます。
反対に、この日時をUTCへ変換する場合は9時間戻します。
2026-08-16T12:30:00+09:00
↓
9時間戻す
↓
2026-08-16T03:30:00Z
となります。
ISO 8601を日本時間へ変換するときは、時刻だけを見るのではなく、末尾の「Z」や「+09:00」などのUTCオフセットまで確認するのがポイントです。
ISO 8601のミリ秒とは?
ISO 8601形式の日時では、
2026-08-16T12:30:00.123+09:00
のように、秒の後ろに「.123」といった数字が付いていることがあります。
この部分は、秒より細かい時間を表しています。
上の例を分解すると、
2026-08-16:日付
T:日付と時刻の区切り
12:30:00:時・分・秒
.123:秒の小数部分
+09:00:UTCオフセット
となります。
「.123」は何を意味する?
1秒は1000ミリ秒です。
そのため、
0.1秒 = 100ミリ秒
0.01秒 = 10ミリ秒
0.001秒 = 1ミリ秒
となります。
たとえば、
12:30:00.123
なら、
12時30分00秒+0.123秒
を表しています。
0.123秒は123ミリ秒なので、「12時30分00秒123ミリ秒」と考えることができます。

ミリ秒は必ず3桁?
ISO 8601の秒の小数部分は、必ず3桁とは限りません。
たとえば、
12:30:00.1
12:30:00.12
12:30:00.123
のような表記があります。
それぞれ、
.1 = 0.1秒
.12 = 0.12秒
.123 = 0.123秒
です。
3桁の場合はミリ秒として読みやすいため、コンピューターの日時データなどでは「.123」のような形式をよく見かけます。
しかし、ISO 8601で表されるのは「秒の小数部分」であり、「小数点の後ろは必ずミリ秒3桁」と決まっているわけではありません。
ミリ秒より細かい時間も表せる?
秒の小数部分をさらに細かくすれば、ミリ秒より細かい時間を表すこともできます。
たとえば、
12:30:00.123456
という表記です。
小数点以下6桁なら、マイクロ秒単位まで表現できます。
1秒 = 1000ミリ秒
1ミリ秒 = 1000マイクロ秒
1秒 = 1,000,000マイクロ秒
です。
ただし、実際にどこまで細かい精度を扱えるかは、利用しているシステムやプログラミング言語などによって異なります。
「Z」が付いた場合の読み方
ミリ秒とZが一緒に使われることもあります。
たとえば、
2026-08-16T03:30:00.123Z
です。
これは、
2026年8月16日
UTC 3時30分00.123秒
を表します。
日本時間へ変換する場合は9時間進めるので、
2026年8月16日 12時30分00.123秒
となります。
ミリ秒部分はそのままで、時刻部分をUTCから日本時間へ変換すればよいわけです。
ISO 8601の「P1D」とは?
ISO 8601を調べていると、
P1D
という、一見すると日時とは関係なさそうな表記を見かけることがあります。
P1Dは日付そのものではありません。
「期間」を表すISO 8601の表記です。
簡単にいうと、
P1D = 1日間
を意味します。
「P」は期間を表す
ISO 8601の期間表記では、先頭に「P」が使われます。
Pは「Period(期間)」を示す記号として使われます。
その後ろに数字と単位を組み合わせます。
たとえば、
P1D
を分解すると、
P:期間
1:数量
D:日(Day)
となります。
つまり「1日間」です。
同じように、
P2D = 2日間
P7D = 7日間
となります。
P1W・P1M・P1Yとは?
日以外の期間も表すことができます。
代表的なものは、
Y:年
M:月
W:週
D:日
です。
そのため、
P1Y = 1年
P1M = 1か月
P1W = 1週間
P1D = 1日
となります。
複数を組み合わせることもできます。
たとえば、
P1Y2M
なら、
1年2か月
を表します。

時間・分・秒を表すときは「T」を使う
ISO 8601の期間では、時間・分・秒を表す場合に「T」が登場します。
たとえば、
PT1H
です。
分解すると、
P:期間
T:日付側と時刻側の区切り
1H:1時間
となるため、
PT1H = 1時間
を意味します。
同じように、
PT30M = 30分
PT10S = 10秒
です。
ここでもTは、日時表記と同じように区切りとして使われています。
「M」は月と分のどちら?
ISO 8601の期間表記で特に注意したいのが「M」です。
Mは「月」と「分」の両方に使われます。
では、どのように見分けるのでしょうか。
ポイントは「T」の前か後かです。
P1M
なら、MはTより前の年月日側にあるため、
1か月
を意味します。
一方、
PT1M
なら、MはTより後ろの時刻側にあるため、
1分
を意味します。
つまり、
P1M = 1か月
PT1M = 1分
です。
Tがあるかどうかで意味が大きく変わるため、注意しましょう。

日と時間を組み合わせることもできる
ISO 8601では、日・時間・分・秒などを組み合わせて期間を表すこともできます。
たとえば、
P1DT2H
です。
分解すると、
P:期間
1D:1日
T:日付側と時刻側の区切り
2H:2時間
となります。
つまり、
P1DT2H = 1日と2時間
です。
さらに、
P1DT2H30M
なら、
1日と2時間30分
を表します。
一見すると暗号のようですが、
P = 期間
T = 日付側と時刻側の区切り
Y = 年
M = 月または分
W = 週
D = 日
H = 時間
S = 秒
というルールを知っておけば読み解きやすくなります。
ISO 8601の期間表記を一覧で確認
代表的な期間表記をまとめると、次のようになります。
| 表記 | 意味 |
|---|---|
| P1D | 1日 |
| P2D | 2日 |
| P1W | 1週間 |
| P1M | 1か月 |
| P1Y | 1年 |
| PT1H | 1時間 |
| PT30M | 30分 |
| PT10S | 10秒 |
| P1DT2H | 1日と2時間 |
| P1DT2H30M | 1日と2時間30分 |
特に覚えておきたいのは、
P1D = 1日
P1M = 1か月
PT1M = 1分
という違いです。
「P」や「T」が何を区切っているのかを見ると、ISO 8601の期間表記を読み解きやすくなります。
P1Dは「翌日の同じ時刻」という意味?
P1Dは「1日」という期間を表します。
ただし、「P1Dを加えること」と「常に24時間を加えること」を完全に同じものとして扱えるとは限りません。
日本では現在サマータイムがないため違いを意識する機会は少ないですが、サマータイムによって時計を進めたり戻したりする地域では、日付上の「1日」と実際の経過時間が24時間にならない場合があります。
そのため、日時を扱うシステムでは、
「翌日の同じ時刻にしたいのか」
それとも、
「24時間後にしたいのか」
を区別する必要がある場合があります。
ISO 8601の期間表記を見るときは、単なる数字だけではなく「日・時間・分など、どの単位で期間が指定されているのか」にも注目するとよいでしょう。
ISO 8601とUTC・JSTの違い
ISO 8601について調べていると、UTCやJSTという言葉も一緒に登場します。
ここで混同しやすいのが、
「ISO 8601は時刻なの?」
「UTCとISO 8601は何が違うの?」
という点です。
簡単に整理すると、ISO 8601とUTC・JSTでは役割が違います。
ISO 8601は、日付や時刻などを表現するための規格です。
一方、UTCやJSTは、時刻を考えるときの基準や標準時に関係するものです。
ISO 8601は日時などの「表し方」
ISO 8601は、
2026-08-16T03:30:00Z
2026-08-16T12:30:00+09:00
のように、日付や時刻などを一定のルールで表現するための国際規格です。
つまり、
ISO 8601 = 日付や時刻などの表し方のルール
と考えるとわかりやすいでしょう。
UTCは世界の時刻を考える基準
UTCは協定世界時で、世界各地の時刻を合わせたり比較したりするときの基準になります。
ISO 8601形式では、
2026-08-16T03:30:00Z
のように、Zを使ってUTCであることを示すことができます。
ISO 8601とUTCは同じものではなく、
ISO 8601:日時などの表現方法
UTC:時刻を考える基準
という違いがあります。
JSTは日本で使われる標準時
JSTは日本標準時です。
日本で普段使っている時刻がJSTで、UTCより9時間進んでいます。
そのため、
JST = UTC+09:00
という関係になります。
ISO 8601では、日本時間に対応するUTCオフセットを含む日時を、
2026-08-16T12:30:00+09:00
のように表すことができます。
ISO 8601・UTC・JSTの関係を整理
3つの違いを簡単に整理すると、次のようになります。
| 用語 | 役割 |
|---|---|
| ISO 8601 | 日付や時刻などを表現するための国際規格 |
| UTC | 世界の時刻を考える基準となる協定世界時 |
| JST | 日本で使われている日本標準時 |
たとえば、
2026-08-16T03:30:00Z
という文字列では、
ISO 8601:日時の表し方
03:30:00:時刻
Z:UTCであることを示す
という関係になっています。

ISO 8601とUnix時間(Unixタイムスタンプ)の違い
コンピューターで日時を扱う方法として、ISO 8601と一緒に覚えておきたいのが「Unix時間」です。
Unix時間は「Unixタイム」「Unixタイムスタンプ」などと呼ばれることもあります。
ISO 8601とは日時の表し方が大きく異なります。
Unix時間とは?
Unix時間とは、基準となる時点からの経過時間を秒数などで表す方法です。
一般的には、
1970年1月1日 00:00:00 UTC
を基準にして、そこから何秒経過したかを数値で表します。
そのため、Unix時間は、
1720000000
のような大きな数字として表示されます。
数字だけを見ても、人間には何年何月何日の何時なのかすぐにはわかりません。
一方、コンピューターでは日時を数値として扱いやすいという特徴があります。
ISO 8601は人間にも比較的読みやすい
ISO 8601では、
2026-08-16T12:30:00+09:00
のように、年・月・日・時・分・秒などが文字列の中に表れています。
そのため、ルールさえ知っていれば人間でも日時を読み取りやすい形式です。
両者を簡単に比較すると、
| 比較 | ISO 8601 | Unix時間 |
|---|---|---|
| 主な形 | 日付・時刻を含む文字列 | 経過時間を表す数値 |
| 例 | 2026-08-16T03:30:00Z | 大きな数値 |
| 人が読みやすいか | 比較的読みやすい | そのままではわかりにくい |
| タイムゾーン情報 | ZやUTCオフセットを含められる | 数値そのものにはタイムゾーン表記がない |
| コンピューターでの利用 | よく使われる | よく使われる |
ISO 8601とUnix時間は変換できる
ISO 8601とUnix時間は表し方が違いますが、同じ時点を表す値であれば相互に変換できます。
たとえば、
ISO 8601形式の日時
↓
Unix時間へ変換
または、
Unix時間
↓
ISO 8601形式へ変換
といった使い方ができます。
ただし、Unixタイムスタンプには秒単位のものだけでなく、システムによってはミリ秒単位で扱うものもあります。
たとえば、桁数の多いUnixタイムスタンプを見た場合には、秒なのかミリ秒なのかを確認する必要があります。

ISO 8601の主な表記を早見表で確認
ここまで登場したISO 8601の代表的な表記を整理してみましょう。
| 表記例 | 意味 |
|---|---|
| 2026-08-16 | 2026年8月16日 |
| 2026-08-16T12:30:00 | 日付+時刻 |
| 2026-08-16T03:30:00Z | UTCの2026年8月16日3時30分 |
| 2026-08-16T12:30:00+09:00 | UTCより9時間進んだオフセットでの12時30分 |
| 2026-08-16T12:30:00.123+09:00 | 秒の小数部分を含む日時 |
| P1D | 1日の期間 |
| P1W | 1週間の期間 |
| P1M | 1か月の期間 |
| P1Y | 1年の期間 |
| PT1H | 1時間の期間 |
| PT30M | 30分の期間 |
| PT10S | 10秒の期間 |
| P1DT2H | 1日と2時間の期間 |
最初は複雑に見えるISO 8601も、
日付
時刻
UTCオフセット
秒の小数部分
期間
というように分けて考えると理解しやすくなります。

ISO 8601を変換するには?
ISO 8601形式の日時は、用途に応じて別の形式へ変換することがあります。
代表的なのが、
ISO 8601 → 日本時間
ISO 8601 → 普通の日付表示
ISO 8601 → Unix時間
Unix時間 → ISO 8601
などです。
ISO 8601から普通の日付に変換する
たとえば、
2026-08-16T12:30:00+09:00
を日本で一般的な表示にすると、
2026年8月16日 12時30分00秒
と読むことができます。
「+09:00」が付いているため、この例ではUTCより9時間進んだオフセットで表されています。
日本時間と同じUTCオフセットなので、日本で日時を表示する場合は12時30分のままです。
Zが付いていたら日本時間へ変換する
たとえば、
2026-08-16T03:30:00Z
なら、ZはUTCを示しています。
日本時間はUTCより9時間進んでいるため、
03:30 + 9時間 = 12:30
となります。
したがって、
2026年8月16日 12時30分
が日本時間です。
前述したように、9時間を加えた結果、翌日になる場合もあるため日付にも注意しましょう。
Web上の変換ツールを利用する方法もある
ISO 8601の日時を毎回自分で計算する必要はありません。
Web上には、ISO 8601やUnix時間を変換できるツールがあります。
日時を入力すると、
日本時間
UTC
Unix時間
などへ変換できるものがあります。
ただし、利用するときは、
入力した日時にZが付いているか
UTCオフセットが付いているか
Unix時間が秒単位かミリ秒単位か
などを確認しましょう。
Excelやプログラムで変換することもできる
大量の日時データを扱う場合は、Excelなどの表計算ソフトやプログラムを利用して変換する方法もあります。
特にWebサービスやAPIから取得したデータでは、
2026-08-16T03:30:00Z
のようなISO 8601形式で日時が返ってくることがあります。
こうしたデータを日本時間に変換して、
2026/08/16 12:30
のように表示することもできます。
ただし、利用するソフトやプログラミング言語によって日時の扱い方が異なるため、変換方法だけでなくタイムゾーンの設定も確認することが大切です。
ISO 8601を変換するときの注意点
ISO 8601の日時を変換するときは、数字だけを見るのではなく、日時全体を確認しましょう。
特に重要なのは、
Zが付いているか
+09:00などのUTCオフセットが付いているか
UTCオフセットが省略されているか
秒の小数部分が含まれているか
といった点です。
たとえば、
2026-08-16T12:30:00
だけでは、その時刻がUTCなのか日本時間なのかを文字列だけから判断できません。
一方、
2026-08-16T12:30:00+09:00
なら、UTCより9時間進んだUTCオフセットであることがわかります。
ISO 8601の変換では、「何時と書いてあるか」だけでなく「どの基準で表された時刻なのか」を確認することが重要です。
ISO 8601で勘違いしやすいポイント
ISO 8601は基本的なルールを覚えれば、それほど難しいものではありません。
しかし、「T」「Z」「+09:00」「P1D」など、普段の日付では見かけない文字や記号が登場するため、意味を取り違えてしまうことがあります。
ここでは、特に勘違いしやすいポイントを整理します。
「T」はタイムゾーンを意味するわけではない
たとえば、
2026-08-16T12:30:00
の「T」をタイムゾーンの記号だと思ってしまうかもしれません。
しかし、Tは日付部分と時刻部分を区切るために使われます。
2026-08-16:日付
T:区切り
12:30:00:時刻
という関係です。
タイムゾーンやUTCオフセットを確認するときは、日時の後ろにあるZや「+09:00」などに注目しましょう。
「Z」が付いていても日本時間ではない
2026-08-16T03:30:00Z
のようにZが付いている場合、その日時はUTCで表されています。
日本時間ではありません。
日本標準時はUTCより9時間進んでいるため、日本時間へ変換すると、
2026年8月16日 12時30分
となります。
「Zを見たらUTC」と覚えておくとわかりやすいでしょう。
「+09:00」は9時間を足すという指示ではない
たとえば、
2026-08-16T12:30:00+09:00
を見て、
「12時30分に9時間を足せばいいの?」
と思うかもしれません。
しかし、「+09:00」は計算の指示ではありません。
その日時のUTCオフセットが、UTCより9時間進んでいることを示しています。
日本時間として確認する場合、この例はそのまま12時30分です。
「+09:00」とJSTはまったく同じ意味ではない
日本標準時(JST)はUTC+09:00です。
そのため、日本時間をISO 8601形式で表すときに「+09:00」が使われます。
ただし、「+09:00」というUTCオフセットそのものがJSTを意味しているわけではありません。
+09:00は、
「UTCより9時間進んでいる」
という時差を示す情報です。
世界には同じUTC+09:00を使う地域もあります。
JSTは日本で使われる標準時、+09:00はUTCとの時差を示すUTCオフセット、と区別するとわかりやすいでしょう。
UTCオフセットがないから日本時間とは限らない
たとえば、
2026-08-16T12:30:00
という日時には、Zも「+09:00」もありません。
この場合、
「何も付いていないから日本時間」
とは判断できません。
どの時刻として扱うかは、使用しているシステムやアプリなどの仕様によります。
ISO 8601形式の日時を見るときは、時刻だけではなくUTCオフセットなどの情報も確認することが大切です。
「.123」は必ずしも3桁でなければならないわけではない
2026-08-16T12:30:00.123+09:00
の「.123」は、秒の小数部分です。
この場合は0.123秒、つまり123ミリ秒を表しています。
しかし、小数部分が必ず3桁というわけではありません。
たとえば、
.1 = 0.1秒
.12 = 0.12秒
.123 = 0.123秒
のように表すことができます。
そのため、「ISO 8601の秒の後ろには必ず3桁のミリ秒が付く」と考えないようにしましょう。
P1MとPT1Mは意味が違う
ISO 8601の期間表記では「M」が月と分の両方に使われます。
P1M = 1か月
ですが、
PT1M = 1分
です。
見分けるポイントはTです。
Tより前のMは月、Tより後ろのMは分として使われます。
1文字違うだけで意味が大きく変わるので注意しましょう。
P1Dと24時間は常に同じように扱えるとは限らない
P1Dは「1日」という期間を表します。
日本ではサマータイムを実施していないため、「1日」と「24時間」の違いを意識することはあまりありません。
しかし、サマータイムによって時計を進めたり戻したりする地域では、カレンダー上の1日を進めたときの実際の経過時間が24時間にならないことがあります。
そのため、日時を扱うシステムでは、
翌日の同じ時刻
と、
24時間後
を区別する必要がある場合があります。
ISO 8601とUnix時間は同じものではない
ISO 8601とUnix時間は、どちらもコンピューターで日時を扱う場面に登場しますが、仕組みは異なります。
ISO 8601は、
2026-08-16T12:30:00+09:00
のように日時を一定のルールで表現します。
一方、Unix時間は一般的に1970年1月1日00:00:00 UTCを基準に、そこからの経過時間を数値で表します。
両者は相互に変換できますが、同じ形式ではありません。

ISO 8601についてよくある質問
ここからは、ISO 8601について疑問になりやすいポイントをQ&A形式で紹介します。
ISO 8601とは簡単にいうと何ですか?
ISO 8601は、日付や時刻などを一定のルールで表現するための国際規格です。
たとえば、
2026-08-16
のような日付や、
2026-08-16T12:30:00+09:00
のような日時を表すことができます。
世界中のコンピューターやサービス間で日時を扱いやすくするために利用されています。
ISO 8601の「T」は何ですか?
Tは、日付と時刻を区切るための記号です。
たとえば、
2026-08-16T12:30:00
なら、
2026-08-16:日付
T:区切り
12:30:00:時刻
という意味になります。
ISO 8601の「Z」は何ですか?
Zは、その日時がUTCであることを示します。
たとえば、
2026-08-16T03:30:00Z
なら、UTCで2026年8月16日3時30分を表します。
日本時間へ変換すると12時30分です。
ISO 8601の「+09:00」は何ですか?
+09:00は、UTCより9時間進んだUTCオフセットであることを示します。
日本標準時はUTCより9時間進んでいるため、日本時間を表す日時でも「+09:00」が使われます。
ただし、+09:00そのものがJSTという意味ではありません。
ISO 8601を日本時間にするにはどうすればいいですか?
Zが付いたUTCの日時なら、基本的に9時間進めます。
たとえば、
2026-08-16T03:00:00Z
なら、
2026年8月16日 12時00分
が日本時間です。
UTCの時刻によっては、9時間を加えることで翌日になることもあります。
ISO 8601のミリ秒は何桁ですか?
3桁で表されることが多く、
.123
なら123ミリ秒です。
ただし、ISO 8601の秒の小数部分が必ず3桁というわけではありません。
「秒より細かい時間を小数で表している」と考えるとわかりやすいでしょう。
ISO 8601のP1Dとは何ですか?
P1Dは「1日」という期間を表します。
Pは期間を示し、DはDay(日)を表します。
同様に、
P1W = 1週間
P1M = 1か月
P1Y = 1年
などがあります。
P1MとPT1Mは何が違いますか?
P1Mは1か月、PT1Mは1分です。
Mは月と分の両方に使われるため、Tの位置で判断します。
P1M:1か月
PT1M:1分
と覚えておきましょう。
ISO 8601にタイムゾーンは必須ですか?
ISO 8601では、UTCオフセットを含まない日時表現もあります。
たとえば、
2026-08-16T12:30:00
です。
ただし、この文字列だけではUTCなのか日本時間なのかといった基準を判断できません。
世界中で日時をやり取りする場合には、ZやUTCオフセットなど、どの基準の時刻なのかわかる情報が重要になります。
ISO 8601とUnix時間はどちらを使えばいいですか?
用途によって異なります。
ISO 8601は人が読んでも日時を理解しやすく、APIやWebサービスなどで日時を文字列としてやり取りする場合に便利です。
Unix時間は日時を数値として扱えるため、コンピューター内部での処理や計算などで使われています。
どちらが優れているというより、用途に合わせて使い分けられています。
まとめ
ISO 8601は、日付や時刻などを一定のルールで表現するための国際規格です。
代表的な日付は、
2026-08-16
のように「年-月-日」の順番で表します。
時刻を加える場合は、
2026-08-16T12:30:00
のようにTで日付と時刻を区切ります。
さらに、
Z:UTC
+09:00:UTCより9時間進んだUTCオフセット
.123:秒の小数部分(この場合は123ミリ秒)
といった情報を組み合わせることができます。
また、
P1D:1日
P1W:1週間
P1M:1か月
P1Y:1年
PT1H:1時間
PT1M:1分
のように、期間を表すこともできます。
ISO 8601は最初に見ると、
2026-08-16T12:30:00.123+09:00
のような文字列が暗号のように感じられるかもしれません。
しかし、
日付
↓
T
↓
時刻
↓
秒の小数部分
↓
UTCオフセット
というようにパーツごとに分解すれば、それぞれの意味が見えてきます。
ISO 8601形式の日時を見かけたら、まず「T」「Z」「+09:00」「P」などの記号に注目してみましょう。
どの種類の日時・期間を表しているのか判断しやすくなります。