【徹底解説】JavaScriptでUTC日時をローカル日時へ変換する4つの方法

2024-04-02

JavaScript / jQuery で UTC 日時をローカル日時へ変換する方法

概要

UTC 日時 とは、協定世界時 (Coordinated Universal Time) のことで、世界共通の時間基準です。一方、ローカル日時 は、ブラウザが現在設定されているタイムゾーンに基づいた時間です。

方法

JavaScript

  1. Date オブジェクトを生成します。
  2. Date オブジェクトの getTimezoneOffset() メソッドを使って、ブラウザのタイムゾーンオフセットを取得します。
  3. オフセット値をミリ秒単位で UTC 日時に加算または減算します。
// UTC 日時を取得
const utcDate = new Date('2024-03-26T12:00:00Z');

// タイムゾーンオフセットを取得
const offset = utcDate.getTimezoneOffset();

// ローカル日時を取得
const localDate = new Date(utcDate.getTime() + (offset * 60 * 1000));

console.log(localDate); // 2024-03-26T19:00:00+09:00

タイムゾーンオフセット は、ローカル日時と UTC 日時の差を表します。日本は UTC よりも 9 時間進んでいるため、タイムゾーンオフセットは +0900 になります。

jQuery を使用すると、より簡単にローカル日時を取得できます。

// UTC 日時を取得
const utcDate = '2024-03-26T12:00:00Z';

// ローカル日時を取得
const localDate = $.datepicker.parseDate('UTC', utcDate);

console.log(localDate); // 2024-03-26T19:00:00+09:00

$.datepicker.parseDate() メソッドは、UTC 形式の文字列を受け取り、ローカル日時を返します。

補足

  • 上記のコードは、ブラウザのタイムゾーン設定に基づいてローカル日時を取得します。
  • 特定のタイムゾーンに基づいてローカル日時を取得したい場合は、Intl.DateTimeFormat オブジェクトを使用できます。



index.html

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>UTC 日時をローカル日時へ変換</title>
</head>
<body>
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <script src="script.js"></script>
</body>
</html>

script.js

$(function() {
  // UTC 日時を取得
  const utcDate = new Date('2024-03-26T12:00:00Z');

  // タイムゾーンオフセットを取得
  const offset = utcDate.getTimezoneOffset();

  // ローカル日時を取得
  const localDate = new Date(utcDate.getTime() + (offset * 60 * 1000));

  // 結果を出力
  $('#result').text(localDate.toString());

  // jQuery を使用してローカル日時を取得
  const localDate2 = $.datepicker.parseDate('UTC', utcDate);
  $('#result2').text(localDate2.toString());
});

index.html には、jQuery のライブラリと script.js ファイルを読み込むための記述があります。

script.js ファイルでは、以下の処理が行われます。

  1. Date オブジェクトを使って、UTC 日時を取得します。
  2. jQuery の parseDate() メソッドを使って、UTC 日時をローカル日時へ変換します。
  3. 取得したローカル日時を #result#result2 要素に出力します。

このコードを実行すると、ブラウザのコンソールに以下の出力が表示されます。

2024-03-26T19:00:00+09:00
2024-03-26T19:00:00+09:00

応用例

  • 異なるタイムゾーンにあるユーザーに、正しい日時を表示する。
  • ログファイルに、UTC 日時ではなくローカル日時を記録する。
  • 国際的な会議の日程調整を行う。

JavaScript と jQuery を使って、UTC 日時をローカル日時へ変換する方法について解説しました。サンプルコードを参考に、実際にコードを書いて試してみてください。




UTC 日時をローカル日時へ変換するその他の方法

Moment.js は、日付と時刻の処理を簡単にする JavaScript ライブラリです。Moment.js を使用すると、以下のように簡単に UTC 日時をローカル日時へ変換できます。

// Moment.js ライブラリの読み込み
import moment from 'moment';

// UTC 日時を取得
const utcDate = moment('2024-03-26T12:00:00Z');

// ローカル日時を取得
const localDate = utcDate.local();

console.log(localDate.toString()); // 2024-03-26T19:00:00+09:00

Moment.js は、タイムゾーンの変換以外にも、日付と時刻の加算・減算、フォーマット変換など、様々な機能を提供しています。

Intl.DateTimeFormat オブジェクトは、ブラウザのロケール設定に基づいて、日付と時刻をフォーマットする JavaScript オブジェクトです。Intl.DateTimeFormat オブジェクトを使用すると、以下のように特定のタイムゾーンに基づいてローカル日時を取得できます。

// 特定のタイムゾーンに基づいてローカル日時を取得
const localDate = new Date().toLocaleDateString('ja-JP', {
  timeZone: 'Asia/Tokyo'
});

console.log(localDate); // 2024年3月26日

Intl.DateTimeFormat オブジェクトは、様々なオプションを指定して、日付と時刻のフォーマットを細かく制御することができます。

上記以外にも、以下のような方法で UTC 日時をローカル日時へ変換することができます。

  • サーバサイドで変換を行う
  • タイムゾーン変換サービスを利用する

UTC 日時をローカル日時へ変換する方法はいくつかあります。それぞれの方法のメリットとデメリットを比較して、目的に合った方法を選択してください。


javascript jquery datetime


indexOf(), search(), includes(), startsWith(), endsWith(): 使い分け方

indexOf() と search() は、JavaScript の String オブジェクトで提供される、文字列検索のためのメソッドです。どちらも部分一致検索に使用できますが、いくつかの重要な違いがあります。検索対象indexOf() は、文字列のみを検索できます。...


【保存版】Node.jsでコンソールログを操作:readline、chalk、figlet、blessモジュールの比較と使い分け

以下の2つの方法で、Node. jsでコンソールログの同じ行を更新することができます。readlineモジュールは、コンソール入出力の制御機能を提供します。このモジュールを使用して、カーソル位置を制御し、同じ行に書き込むことができます。この例では、readlineモジュールの cursorTo メソッドを使用してカーソルを左上に移動し、clearLine メソッドを使用して現在の行を消去しています。その後、write メソッドを使用して更新されたメッセージを書き込みます。...


もう迷わない!jQueryでEnterキーを押したらボタンが押されたようにする方法

必要なものjQuery ライブラリ要素をクリックする対象となるボタン手順ボタンに click イベントを設定する$(document).ready(function() { $("#myButton").click(function() { alert("ボタンがクリックされました!"); }); }); このコードは、ページが読み込まれた後、#myButton という ID を持つ要素に click イベントを設定します。このイベントがトリガーされると、alert("ボタンがクリックされました!"); というコードが実行され、アラートが表示されます。...


Reactで要素を表示・非表示にするベストプラクティス

条件付きレンダリングは、条件によって要素を表示・非表示にする最も一般的な方法です。この例では、isVisible という状態変数を使って要素の表示・非表示を制御しています。isVisible が true の場合のみ、p 要素が表示されます。...