日時

ISO8601日時変換時刻とタイムスタンプを区別する

ISO形式またはRFC形式の日時を1行ずつ入力します。ゾーンのない日時は、明示的にUTCを選ぶまで未指定のままです。

ISO8601日時変換

入力

入力はこのブラウザー内で処理され、サーバーには送信されません。

結果

オプション

1行に1つ入力:2024-01-01T08:00:00+08:00、2024-01-01、08:00、Sun, 06 Nov 1994 08:49:37 GMTなど。

小数秒は最大9桁。Unix秒・ミリ秒は切り下げ、ナノ秒は正確です。HTTP出力は整数秒のみ。

最大1000行、全体100000 UTF-16コード単位、1行512コード単位。空行はエラーです。

入力するかサンプルを読み込んでください。

ISO8601日時変換は、APIやメールヘッダーに現れる日時を読み解くためのツールです。表示が9時間違っていても同じ瞬間を表す場合があり、逆に日時が一致していてもオフセットがなければ比較できないことがあります。

元の文字列と解析した各項目を残すため、日付が変わった理由を追えます。不正な日付を翌月へ繰り上げることはなく、エラーがあっても他の行の結果は確認できます。

ISO8601日時変換で確認できること

表示時刻と同じ瞬間を結び付ける

ISO8601日時変換では、同日の08:00+08:00と00:00Zが異なる時刻欄を持ちながら、同一のUnix値になることを確認できます。UTCオフセットを適用した結果と、元の時計の読みを別々に確認するのに役立ちます。

針の位置が異なる2つの時計から、共通の時間軸上の同じ点へ線がつながっている。

不足している情報は補わない

日付だけの値に午前0時を足したり、時刻だけの値に今日の日付を足したりしません。UTCを明示的に選んだ場合でも、存在しない日付や時刻を補ってタイムスタンプを作ることはありません。

日付・時刻・オフセットが揃う経路は時間軸に進み、不足する経路は黄色い印で止まっている。

日時の比較で見落としやすい点

01

形式のラベルを読む

日付フォーマット変換では、秒とオフセットを含むRFC 3339形式を、それ以外の対応形式と区別します。空白区切りや+0900も解析できますが、RFC 3339の対応サブセットとしては表示しません。

02

UTCを指定する意味を確認する

ゾーンがない完全な日時だけにUTC解釈を適用できます。出所が分からない文字列は未指定のまま確認してください。明示した仮定はレポートに残り、入力に書かれたオフセットが優先されます。

03

結果の更新と精度を見る

自動解析は編集終了から350ms後に実行します。オフにするとボタンまたはCtrl/Cmd + Enterで実行でき、更新前のコピーと保存は無効になります。表示は50行ずつ増えますが、出力には全行が含まれます。

項目ごとに日時の意味を確認

実在する日付を検証

うるう年を含め、年・月・日の組み合わせを検証します。2月30日や時分秒の範囲外値を自動修正しないので、元データの誤りを見つけられます。

RFCメール日時も扱う

RFC 2822変換では、英語の月名、数値オフセット、GMT、UTを含む宣言済みの形式を受け付けます。曜日が書かれている場合は日付と照合し、HTTPの固定形式とメール形式を区別します。

9桁の小数秒を保持

ISO 8601日付フォーマッターとして小数をそのまま残し、UTCでは9桁表示します。Unixナノ秒は正確な整数文字列です。秒とミリ秒は切り下げるため、1970年直前の値でもゼロ方向に丸めません。

HTTP出力の条件を明示

UTC年が1900–9999の範囲で、小数秒がゼロの場合だけIMF-fixdateを出力します。小数を捨ててヘッダーを作ることはなく、精度を保つISO結果と理由を残します。

受け付ける表記と対象外の表記

ゾーンのない日時
既定ではUTC・Unix・HTTPを計算しません。完全な日時に限り、ユーザーの選択でUTCと解釈できます。日付のみ、時刻のみの値から瞬間を推測する機能はありません。
ISO全体を網羅しない
YYYY-MM-DDとHH:mm[:ss[.fraction]]に対応し、T、tまたは空白1つで結合できます。オフセットはZ/z、±HH:MM、±HHMMです。年とUTC変換後の年は0001–9999。基本形式、週日付、通算日、期間、区間には対応しません。
精度と時刻の上限
時は00–23、分・秒は00–59、小数秒は最大9桁です。24:00、うるう秒、小数コンマを拒否します。負のゼロオフセットは元の地域オフセットが不明という情報を残し、UTCは計算できます。
限定したRFC構文
英語の月名、1900年以降の4桁年、正しい曜日、数値オフセットまたはGMT/UTを使用します。コメント、折り返し、2桁年、その他の略称や旧HTTP形式は対象外です。
容量と入力経路
最大1000行、全体100000 UTF-16コード単位、1行512コード単位です。空行はエラーとして残します。ファイルやURLの取込み、数値タイムスタンプの入力、地域時刻・夏時間の変換、曖昧なスラッシュ日付の推測はしません。

ISO8601日時変換のよくある質問

ISO 8601とRFC 3339の違いは何ですか?

ISO 8601には日付だけ、週日付など多くの表記があります。RFC 3339はインターネット上のタイムスタンプ向け形式です。本ページは対応範囲を限定しており、うるう秒など受け付けない構文も明示しています。

UTC+9とJSTはどう違いますか?

+09:00はその日時に適用する数値オフセットです。JSTは日本標準時の名称ですが、この入力欄はJSTという略称を解析しません。意図が日本標準時なら、日時に+09:00を明記してください。

JavaScriptのDateはISO 8601をパースできますか?

一般的なISO文字列は解析できますが、Dateの精度はミリ秒です。ゾーンのない文字列も形式によって解釈が異なるため、本ページでは明示した構文とナノ秒計算を使い、不足する情報を勝手に補いません。

日時フォーマットを手軽に変換するには?

元の日時を1行ずつ入力し、形式ラベルと正規化したISO表記を比較できます。RFCメール日時も対応サブセットなら変換できます。月日順が不明な05/06/2024は受け付けないので、先に出所で意味を確認してください。

APIやデータベースにはどの形式を使えばよいですか?

まず利用先の仕様を確認してください。対応する完全な日時ならUTCのISO出力が比較に便利ですが、小数桁数の受入上限はシステムごとに異なります。日付だけを必要とする項目を、勝手にタイムスタンプへ変えるべきではありません。

予想と違う結果ですか?

元の日時に戻って確かめる

ISO8601日時変換で、元の各項目、オフセット、UTCの精密な値を照合してからレポートを保存してください。