JavaScriptでタイムゾーン変換のイメージ

【保存版】JavaScriptでタイムゾーン変換!UTCとJST(日本時間)の変換方法

2025年08月05日

JavaScriptで日付や時刻を扱う際、タイムゾーン(UTC・JST)の変換が必要になる場面は多くあります。特にAPIやサーバーと連携する際には、UTC(協定世界時)JST(日本標準時)= +09:00の変換が不可欠です。

この記事では、JavaScriptでUTCとJSTを相互に変換する方法を、具体的なコード付きでわかりやすく解説します。

✅ JavaScriptでUTCからJST(+09:00)へ変換する方法

たとえば、以下のようなISO形式のUTC日時があるとします。

const utcDate = new Date('2021-01-01T09:00:00.000Z');

この日時は UTC(協定世界時) を表しています。これを 日本時間(JST) に変換するには次のようにします:

▼ `toLocaleString()`を使ったJST変換

const jstString = utcDate.toLocaleString('ja-JP', { timeZone: 'Asia/Tokyo' });
console.log(jstString); // → 2021/1/1 18:00:00

この方法で、簡単に日本時間で日時を表示できます。

▼ ISO形式(+09: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(+0900)をUTCに変換する方法

逆に、日本時間(JST)をUTCに変換することもあります。以下のような日付をUTCに変換してみましょう。

const jstInput = new Date('2021-01-01T09:00:00+0900');

▼ UTCに変換して出力(ISO形式)

const utcString = jstInput.toISOString();
console.log(utcString); // → 2021-01-01T00:00:00.000Z

`toISOString()`は常にUTCで出力されるため、UTCの表現が必要なときにはこのメソッドが最適です。

✅ UTC時刻を数値で取得する方法(例:時・分)

console.log(jstInput.getUTCHours());   // → 0
console.log(jstInput.getUTCMinutes()); // → 0

特定の用途で「時」や「分」などの数値だけを取り出したい場合にも使えます。

✅ なぜUTCとJSTの変換が必要なのか?

✅ ライブラリを使った方法(補足)

Moment.js や Luxon を使うと、より簡潔にタイムゾーン処理ができますが、最近は標準の`Date`オブジェクトで十分という意見も多く、依存しすぎない設計がおすすめです。

🔍 よくある質問(FAQ)

Q1. `Z`って何?

`Z` は Zulu時間=UTC を意味します。`2021-01-01T09:00:00Z` は `+00:00` と同じ意味です。

Q2. `+0900`と`+09:00`の違いは?

基本的に意味は同じですが、厳密なISO 8601準拠ではコロン(:)を入れた `+09:00` の方が標準です。

✅ まとめ:UTCとJSTの変換は必須スキル!

変換方向方法
UTC → JST toLocaleString('ja-JP', { timeZone: 'Asia/Tokyo' })
JST → UTC toISOString()で出力
JSTを+09:00形式で出力 自前でフォーマットするか、ライブラリ使用

JavaScriptで時間を扱うなら、タイムゾーンの理解は絶対に必要です。この記事をブックマークしておけば、いつでも変換方法を確認できます!


関連リンク

.htaccessは階層で引き継がれる?Apacheの挙動を徹底解説

MBTI診断

SEO対策に必須!検索上位を狙うsitemap.xmlの完全ガイド

Google Search Consoleの「代替ページ(適切なcanonicalタグあり)」とは?原因と解決法を徹底解説!

Microsoft純正の新しいコンソールエディタ「edit」が復活!| edit.exe インストール方法

Googleサイト確認のTXTレコードをnslookupで確認する方法【SEO対策】

Googleサーチコンソールに反映されるための最低限のSEO構造とは

PHPで複数ファイルを順番に削除する方法

MBTI診断 | あなたの性格タイプを分析

PDFファイル結合|パスワード設定ツール

【Anker Soundcore Liberty 4】イヤーピース紛失!代替品はAmazonで購入

JavaScriptでタイムゾーン変換!UTCとJST(日本時間)の変換方法

pnpmとは?npmとの違いとインストール方法

CSS・JSの更新が反映されない時のキャッシュ対策方法3選

HTMLとJavaScriptモジュールでクラスを定義し、ボタンから呼び出す方法

JavaScriptでTensorFlow.jsを動的に読み込む方法|HTMLに直接書かずに機械学習を実行する

ChatGPT風リンクバッジをCSSで作成する

ffmpegでMOVファイルを逆再生する方法【音声付き対応】

macOSでドメイン名から情報を取得する方法【初心者向け】

JavaScriptでPCの空き容量やメモリ量を取得できる?Chromeの制限と代替手法

PowerShellでNode.jsの最新バージョン一覧を確認する方法【Volta/Windows対応】

Next.jsでbasePathを/homepage2にしてS3へ静的デプロイする完全手順

Homebrewの「update」と「upgrade」の違い+バージョン確認方法|Macのパッケージ管理

.DS_StoreをGitでアップしない方法|macユーザー向け