日付フォーマット変換ツールは、任意の日付文字列またはタイムスタンプを入力として受け取り、10種類の一般的なフォーマット(Unix timestamp、ISO 8601、RFC 3339、RFC 7231、UTC、ISO 9075、MongoDB ObjectId、Excelシリアル番号、JavaScriptタイムスタンプ、カスタムフォーマット)の対応値を一覧表示します。データベース・API・システム間の日付フォーマットの不一致を解消する際の素早い参照ツールです。
各フォーマットの用途
| フォーマット | 例 | 主な用途 |
|---|---|---|
| ISO 8601 | 2024-12-19T10:30:45.123Z | JSON API、データベース保存、国際化アプリ |
| ISO 9075 | 2024-12-19 10:30:45.123 | MySQL、PostgreSQLクエリ |
| RFC 3339 | 2024-12-19T10:30:45+09:00 | インターネットプロトコル、OpenAPI仕様 |
| RFC 7231 | Thu, 19 Dec 2024 10:30:45 GMT | HTTPヘッダー: Last-Modified、Expires |
| Unix timestamp(秒) | 1703038245 | システムログ、キャッシュTTL、トークン有効期限 |
| JavaScriptタイムスタンプ(ms) | 1703038245123 | Date.now()、フロントエンドの時刻比較 |
| MongoDB ObjectId | 675436e50000000000000000 | ドキュメントの作成日時を逆引きする |
| Excelシリアル番号 | 45644.4378 | Excelインポート/エクスポート、財務レポート |
タイムゾーン処理の境界ケース
ツールはdayjsで入力を解析するため、タイムゾーンの扱いはフォーマットによって異なります。
- ISO 8601 / RFC 3339: 入力に
+09:00やZなどのオフセットが含まれている場合、dayjsはそれを保持し、RFC 3339の出力に正しいオフセットが含まれます。 - ローカルフォーマット: ブラウザの現在のシステムタイムゾーンを使用します。同じ入力でもタイムゾーンが異なるマシンでは異なる「ローカル」文字列が生成されます。
- ISO 9075 / RFC 7231: ローカルタイムゾーンでフォーマットされます。タイムゾーンをまたいで結果を共有する際は注意が必要です。
- Unix timestamp / UTC: 常にUTCで、タイムゾーンの曖昧さがありません。システム間で時刻を受け渡す最も安全なフォーマットです。
サマータイムの境界: 入力時刻がサマータイムの切り替え点(欧米の秋の調整日の午前2時など)に当たる場合、一部のフォーマットの変換結果が重複または欠落することがあります。これはタイムゾーン仕様そのものの特性で、ツールの不具合ではありません。
MongoDB ObjectIdから作成日時を取り出す
ObjectIdの最初の8桁の16進数はUnix timestamp(秒)をエンコードしています。ツールはその8桁を取り出し、後ろに16個のゼロを付加して有効な24文字のObjectIdを生成します。逆方向も対応しており、実際のObjectIdを貼り付けると最初の8文字からドキュメントの作成時刻を導き出せます。
カスタムフォーマットの構文
カスタムフォーマットフィールドはdayjsのフォーマットトークンを受け付けます。よく使うトークン:
YYYY— 4桁の年;YY— 2桁MM— 月(01-12);DD— 日(01-31)HH— 24時間制;hh— 12時間制;mm— 分;ss— 秒X— Unix秒;x— Unix ミリ秒
MM(月)とmm(分)、HH(24時間)とhh(12時間)を混同することがカスタムパターンで予期しない出力が発生する最もよくある原因です。