開発者 🔒 ブラウザ内で動作 — データは送信されません

日付をタイムスタンプに変換

カレンダー上の日付と壁時計の時刻を、選んだタイムゾーンで読み取ってUNIXタイムスタンプに変換します。

現在のUNIXタイムスタンプ:
タイムスタンプ → 日付
日付 → タイムスタンプ

1行に1つのタイムスタンプまたは日付を、最大500行まで入力できます。

日付をUNIXタイムスタンプに変換する

コードは時刻を数値で保存しますが、手元に届く時刻はたいてい日付の形をしています。メールに書かれた締切、表計算の1行、メンテナンス時間の開始時刻などです。その一方から他方へ移すのがタイムスタンプ変換ツールの日付 → タイムスタンプ側の役割で、このページは日付をあらかじめ入れた状態で開くので、自分の日付を打つ前に答えの形を確かめられます。

結果は4行です。1行目はツールが読み取った日付と時刻を、適用した<abbr title="Coordinated Universal Time">UTCオフセットとともに繰り返すので、数値を信用する前にタイムゾーンを確認できます。続いて秒のタイムスタンプ、同じ瞬間のミリ秒、そして念のための確認としてUTC表記が並びます。アップロードは行われず、計算はページの中で完結します。

入力した時刻はどこかのタイムゾーンに属します

日付欄が保持しているのは壁時計の読み、つまり年・月・日・時・分・秒です。これはまだ「瞬間」ではありません。「2025年1月1日の0時」が訪れた瞬間は東京とニューヨークで違い、どちらを指すのかを決めるのはタイムゾーンだけです。ツールは入力内容を上部で選択中のタイムゾーンの現地時刻として読み、その日付に有効なオフセットを適用して瞬間を返します。タイムゾーンを変えれば、変換は自動でやり直されます。

選択したタイムゾーンその日付のオフセット2025年1月1日00:00:00のタイムスタンプ
UTCUTC+00:001735689600
Europe/BerlinUTC+01:001735686000
Asia/TehranUTC+03:301735677000
Asia/TokyoUTC+09:001735657200
America/New_YorkUTC-05:001735707600

オフセットはブラウザーのタイムゾーンデータベースから取られるため、サマータイムはすでに織り込まれています。Europe/Berlinの同じ09:00は1月ならUTC+01:00、7月ならUTC+02:00であり、どちらだったかを覚えておく必要はありません。スクリプトに固定のオフセットを書き込むことが、半年は正しく半年は間違っている日付を生む定番の原因です。

秒とミリ秒、そして入力欄が保持できる精度

秒の値はミリ秒の値から端数を落としたものなので、2つの行は常に同じ瞬間を指します。日付欄が受け付けるのは整数秒までで、それより細かくはできません。つまりここで作ったタイムスタンプは、ミリ秒として読むと必ず000で終わります。1秒未満の精度が必要なら、その数値はピッカーではなく、イベントを記録したシステムから取る必要があります。

同じことをコードで行う

変換ツールの下のコードタブは、変換をJavaScript、Python、PHP、SQL、Go、Java、C#、Bashで出力し、どのスニペットもその言語で現在のタイムスタンプを生成する行で終わります。コードに移っても残る落とし穴が2つあります。2025-01-01T00:00:00のようなタイムゾーンなしの文字列は、実行するマシンのタイムゾーンで読まれ、サーバーでは自分の地域ではなくUTCであることが多い点。そしてMySQLのUNIX_TIMESTAMP()は引数をセッションのタイムゾーンで解釈する点です。どちらの場合もオフセットを明記するか、名前付きタイムゾーンを経由してください。

逆方向と近くのページ

反対側のペインは数値を日付として読み戻すので、変換を検算する一番早い方法になります。コピーした値を貼り付けて、元の日付が返るかを見るだけです。その方向にはタイムスタンプを日付に変換という専用ページがあり、13桁の場合はミリ秒を日付に変換が扱います。今この瞬間の値ならツールバーの現在のUNIXタイムスタンプがあり、チャットでの告知にはDiscordのタイムスタンプが、秒の値をDiscordが読者ごとに描画する記法で包んでくれます。

関連ガイド