仕様と根拠
日付の妥当性
RFC 3339 の 5.6 節では、月は 01〜12、日は月と閏年で決まる範囲(1 月は 31 日、4 月は 30 日、2 月は平年 28 日・閏年 29 日など)、時は 00〜23、分は 00〜59、秒は 00〜59(うるう秒のとき 60)と定めています。閏年は 4 で割り切れる年のうち、100 で割り切れる年は 400 でも割り切れる年だけです。この規則で、2 月 30 日や 2100 年 2 月 29 日などの存在しない日付を見つけます。
未来日の判定
日付の部分(YYYY-MM-DD)を基準日と文字列として比べ、基準日より後なら未来日とします。基準日と同じ日は未来日ではありません。時刻とオフセットは未来日の判定には使いません。基準日が空のときは、未来日は判定せず、その旨を情報として表示します。
時刻とオフセット
日時の形では、Z または ±HH:MM のオフセットが RFC 3339 で必須です。ない場合はオフセットなしとして警告します。うるう秒(秒が 60)は、協定世界時で 6 月 30 日か 12 月 31 日の 23:59:60 のときだけ有効で、オフセット付きの日時はずらして判定します。列のオフセットが混在していれば情報で知らせます。
根拠にした仕様・資料
| 仕様・資料 | 確認日 | 使った箇所 |
|---|---|---|
| RFC 3339 Date and Time on the Internet: Timestamps | 2026年10月29日 | 5.6 節 ABNF(date-fullyear 4DIGIT、date-month 01-12、date-mday は月・年で 01-28〜31、time-hour 00-23、time-minute 00-59、time-second 00-58/59/60、time-numoffset ±HH:MM)。5.7 節の月ごとの日数の表と閏年(4 で割り切れ、100 年の倍数は 400 でも割り切れる年。Appendix C)、うるう秒は 6 月末・12 月末。WebFetch で確認 |
指摘の段階
- エラー: 仕様に反していて、正しく読めない・処理できない入力です。
- 警告: 読めるものの、仕様の推奨に反する・矛盾する・意図と違う結果になりやすい入力です。
- 情報: 誤りではありませんが、知っておくとよい扱い(読み飛ばした部分や解釈)です。
入力の扱い(送信しない仕組み)
処理はすべてお使いのブラウザの中で行います。処理の本体はこのサイトから配信する小さなスクリプト(/app.js)で、外部のサービスやライブラリを読み込みません。ページはブラウザに通信を禁止させる設定(Content-Security-Policy の connect-src)つきで配信しており、入力した内容がサーバーや第三者へ送られることはありません。ファイルを選んだ場合も、端末の中で読み込むだけです。
このツールでできないこと(制約)
- 和暦(令和 8 年など)とスラッシュ区切り(2026/10/29)は読めません。RFC 3339 の YYYY-MM-DD の形にそろえてください。
- 未来日の判定に現在日時は使いません。基準日は利用者が入れるため、ページを開いた日の日付は自動では入りません。
- その日付が業務上ありえるか(生年月日が 150 年前など)は判定しません。存在するかと、基準日との前後だけを調べます。
ご利用にあたって
- この検査は日付の形と存在、基準日との前後だけです。データの業務上の正しさは、元の資料で確認してください。
- 大きな列は端末の性能により処理に時間がかかることがあります。