2025年08月05日
JavaScriptで日付や時刻を扱う際、タイムゾーン(UTC・JST)の変換が必要になる場面は多くあります。特にAPIやサーバーと連携する際には、UTC(協定世界時)とJST(日本標準時)= +09:00の変換が不可欠です。
この記事では、JavaScriptでUTCとJSTを相互に変換する方法を、具体的なコード付きでわかりやすく解説します。
たとえば、以下のようなISO形式のUTC日時があるとします。
const utcDate = new Date('2021-01-01T09:00:00.000Z');
この日時は UTC(協定世界時) を表しています。これを 日本時間(JST) に変換するには次のようにします:
const jstString = utcDate.toLocaleString('ja-JP', { timeZone: 'Asia/Tokyo' });
console.log(jstString); // → 2021/1/1 18:00:00
この方法で、簡単に日本時間で日時を表示できます。
const jstDate = new Date(utcDate.toLocaleString('en-US', { timeZone: 'Asia/Tokyo' }));
const pad = n => n.toString().padStart(2, '0');
const isoJst =
`${jstDate.getFullYear()}-${pad(jstDate.getMonth() + 1)}-${pad(jstDate.getDate())}T` +
`${pad(jstDate.getHours())}:${pad(jstDate.getMinutes())}:${pad(jstDate.getSeconds())}+09:00`;
console.log(isoJst); // → 2021-01-01T18:00:00+09:00
これは、「+09:00」形式の文字列が必要な場面(例:ログ、API送信)で便利です。
逆に、日本時間(JST)をUTCに変換することもあります。以下のような日付をUTCに変換してみましょう。
const jstInput = new Date('2021-01-01T09:00:00+0900');
const utcString = jstInput.toISOString();
console.log(utcString); // → 2021-01-01T00:00:00.000Z
`toISOString()`は常にUTCで出力されるため、UTCの表現が必要なときにはこのメソッドが最適です。
console.log(jstInput.getUTCHours()); // → 0
console.log(jstInput.getUTCMinutes()); // → 0
特定の用途で「時」や「分」などの数値だけを取り出したい場合にも使えます。
Moment.js や Luxon を使うと、より簡潔にタイムゾーン処理ができますが、最近は標準の`Date`オブジェクトで十分という意見も多く、依存しすぎない設計がおすすめです。
`Z` は Zulu時間=UTC を意味します。`2021-01-01T09:00:00Z` は `+00:00` と同じ意味です。
基本的に意味は同じですが、厳密なISO 8601準拠ではコロン(:)を入れた `+09:00` の方が標準です。
| 変換方向 | 方法 |
|---|---|
| UTC → JST | toLocaleString('ja-JP', { timeZone: 'Asia/Tokyo' }) |
| JST → UTC | toISOString()で出力 |
| JSTを+09:00形式で出力 | 自前でフォーマットするか、ライブラリ使用 |
JavaScriptで時間を扱うなら、タイムゾーンの理解は絶対に必要です。この記事をブックマークしておけば、いつでも変換方法を確認できます!
.htaccessは階層で引き継がれる?Apacheの挙動を徹底解説
SEO対策に必須!検索上位を狙うsitemap.xmlの完全ガイド
Google Search Consoleの「代替ページ(適切なcanonicalタグあり)」とは?原因と解決法を徹底解説!
Microsoft純正の新しいコンソールエディタ「edit」が復活!| edit.exe インストール方法
Googleサイト確認のTXTレコードをnslookupで確認する方法【SEO対策】
Googleサーチコンソールに反映されるための最低限のSEO構造とは
【Anker Soundcore Liberty 4】イヤーピース紛失!代替品はAmazonで購入
JavaScriptでタイムゾーン変換!UTCとJST(日本時間)の変換方法
HTMLとJavaScriptモジュールでクラスを定義し、ボタンから呼び出す方法
JavaScriptでTensorFlow.jsを動的に読み込む方法|HTMLに直接書かずに機械学習を実行する
ffmpegでMOVファイルを逆再生する方法【音声付き対応】
JavaScriptでPCの空き容量やメモリ量を取得できる?Chromeの制限と代替手法
PowerShellでNode.jsの最新バージョン一覧を確認する方法【Volta/Windows対応】
Next.jsでbasePathを/homepage2にしてS3へ静的デプロイする完全手順