カテゴリ: JavaScript 更新日: 2025/12/26

JavaScriptでタイムゾーンを意識した日時操作まとめ!初心者でもわかる方法

JavaScriptのタイムゾーンを意識した日時操作まとめ
JavaScriptのタイムゾーンを意識した日時操作まとめ

先生と生徒の会話形式で理解しよう

生徒

「JavaScriptで海外の時間や自分のタイムゾーンに合わせた日時を扱う方法ってありますか?」

先生

「あります。JavaScriptではDateオブジェクトが標準でタイムゾーンを扱いますが、UTC(協定世界時)やローカルタイムを意識して操作することが大切です。」

生徒

「UTCって何ですか?」

先生

「UTCは世界共通の基準時です。日本時間はUTCより9時間進んでいるので、日本時間を扱うときは9時間を意識する必要があります。」

1. Dateオブジェクトのタイムゾーンの基本

1. Dateオブジェクトのタイムゾーンの基本
1. Dateオブジェクトのタイムゾーンの基本

JavaScriptのDateオブジェクトは、内部的にはUTCで時間を保持しています。画面に表示するときにローカルタイム(パソコンやブラウザのタイムゾーン)に変換されます。


const now = new Date();
console.log("ローカルタイム:", now.toString());
console.log("UTCタイム:", now.toUTCString());

ローカルタイム: Tue Nov 18 2025 19:00:00 GMT+0900 (日本標準時)
UTCタイム: Tue, 18 Nov 2025 10:00:00 GMT

この例では、ローカルタイムが日本時間(UTC+9)として表示され、UTCは世界標準の時間として表示されています。

2. UTCで日時を設定・取得する方法

2. UTCで日時を設定・取得する方法
2. UTCで日時を設定・取得する方法

UTCを使うと、どの国からアクセスしても同じ時間を扱えます。getUTCFullYear()setUTCDate()などのメソッドがあります。


// UTCの日時取得
const utcNow = new Date();
console.log("UTC年:", utcNow.getUTCFullYear());
console.log("UTC月:", utcNow.getUTCMonth() + 1); // 月は0から11
console.log("UTC日:", utcNow.getUTCDate());

// UTCで日時設定
const utcDate = new Date();
utcDate.setUTCFullYear(2026);
utcDate.setUTCMonth(0); // 1月
utcDate.setUTCDate(1);
console.log(utcDate.toUTCString());

UTC年: 2025
UTC月: 11
UTC日: 18
Wed, 01 Jan 2026 10:00:00 GMT

このようにUTCを意識すれば、海外サービスとの連携やログ管理が簡単になります。

3. タイムゾーン差を計算して日時を調整する

3. タイムゾーン差を計算して日時を調整する
3. タイムゾーン差を計算して日時を調整する

日本時間など特定のタイムゾーンに合わせるには、UTC時間にオフセットを足す方法があります。


// 日本時間(UTC+9)に変換
const utc = new Date(Date.UTC(2025, 10, 18, 10, 0, 0)); // 10時UTC
const jstOffset = 9 * 60; // 分単位
const jstTime = new Date(utc.getTime() + jstOffset * 60 * 1000);
console.log(jstTime.toString());

Tue Nov 18 2025 19:00:00 GMT+0900 (日本標準時)

UTCから日本時間への変換は、オフセットをミリ秒単位で足すだけで簡単に行えます。

4. ISO形式でタイムゾーンを意識した日時取得

4. ISO形式でタイムゾーンを意識した日時取得
4. ISO形式でタイムゾーンを意識した日時取得

toISOString()を使うと、UTC基準でISO 8601形式の文字列を取得できます。ログやAPI連携によく使われます。


const isoString = new Date().toISOString();
console.log(isoString);

2025-11-18T10:00:00.000Z

末尾のZはUTCを示しています。これを基にローカルタイムに変換することも可能です。

5. 実務でのポイント

5. 実務でのポイント
5. 実務でのポイント
  • サーバーやAPIとの日時のやり取りはUTCで統一するとトラブルが少ない
  • 画面表示はtoLocaleString()Intl.DateTimeFormatを使うとユーザーのタイムゾーンに合わせられる
  • 加算・減算を行う場合も、UTCベースで計算すると時差による誤差を防げる

// ユーザーのタイムゾーンに合わせて表示
console.log(new Date().toLocaleString("ja-JP", { timeZone: "Asia/Tokyo" }));

2025/11/18 19:00:00

このようにタイムゾーンを意識すると、世界中のユーザーに正しい日時を表示できるようになります。

カテゴリの一覧へ
新着記事
New1
TypeScript
TypeScriptでパスエイリアスを設定する方法!baseUrlとpathsでコードをスッキリ整理
New2
JavaScript
JavaScriptのfor文の書き方を初心者向けにやさしく解説
New3
JavaScript
JavaScriptの関数でよくあるエラーとその解決法まとめ
New4
JavaScript
JavaScriptのイベント処理でよくあるエラーとその対処法
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptのマウスイベントの使い方(click, mouseoverなど)
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptのtoStringとString関数の違いを初心者向けに解説
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptの純粋関数(pure function)と副作用の違いを理解しよう
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptで文字列をforループで1文字ずつ処理する方法!初心者向け解説
No.7
Java&Spring記事人気No7
TypeScript
TypeScriptの始め方:開発環境の構築手順【初心者向け】
No.8
Java&Spring記事人気No8
JavaScript
JavaScriptのDOMContentLoadedとloadイベントの違いを理解しよう