JavaScript でタイムゾーンを取得する

Ammar Ali 2023年10月12日
  1. JavaScript の Date() 関数と slice() 関数を使用してタイムゾーンとそのオフセットを取得する
  2. JavaScript の Date() 関数と getTimezoneOffset() 関数を使用してタイムゾーンオフセットを取得する
  3. JavaScript の DateTimeFormat() 関数を使用してタイムゾーンを取得する
JavaScript でタイムゾーンを取得する

このチュートリアルでは、JavaScript の slice()getTimezoneOffset()、および DateTimeFormat() 関数とともに Date() 関数を使用してタイムゾーンとそのオフセットを取得する方法について説明します。

JavaScript の Date() 関数と slice() 関数を使用してタイムゾーンとそのオフセットを取得する

Date() 関数を使用してタイムゾーンとそのオフセットを見つけることができますが、日付と時刻も返します。たとえば、Date() 関数を使用して、現在の日付、時刻、オフセット、およびタイムゾーンを取得しましょう。以下のコードを参照してください。

var MyDate = new Date();
console.log(MyDate);

出力:

Wed Jun 23 2021 08:29:17 GMT+0500 (Pakistan Standard Time)

出力では、Date() 関数が現在の日付、時刻、オフセット、およびタイムゾーンを返したことがわかります。タイムゾーンまたはオフセットのみを取得する場合は、出力を文字列に変換してスライスし、目的の出力を取得する必要があります。

文字列に変換するには、toTimeString() 関数を使用できます。この関数は、時間、オフセット、およびタイムゾーンを返します。その後、slice 関数を使用して目的の出力を取得できます。たとえば、上記の出力からタイムゾーンオフセットを取得しましょう。以下のコードを参照してください。

var MyDate = new Date();
console.log(MyDate);
var MyString = MyDate.toTimeString();
console.log(MyString);
var MyOffset = MyString.slice(9, 17);
console.log(MyOffset);

出力:

Wed Jun 23 2021 08:29:17 GMT+0500 (Pakistan Standard Time)
08:39:52 GMT+0500 (Pakistan Standard Time)
GMT+0500

出力では、2 行目は toTimeString() 関数によって返され、3 行目は slice() 関数によって返されます。slice() 関数の最初と 2 番目の引数は、スライスする文字の位置です。

たとえば、slice(9,17) 関数は、9 番目の文字から 17 番目の文字までスライスを開始します。2 番目の引数を定義しない場合、関数は文字列の最後の文字までスライスします。

JavaScript の Date() 関数と getTimezoneOffset() 関数を使用してタイムゾーンオフセットを取得する

Date() 関数を getTimezoneOffset() 関数と一緒に使用して、タイムゾーンオフセットを取得できます。このメソッドは、タイムゾーンオフセットを分単位で返します。デモについては、以下のサンプルコードを参照してください。

var MyDate = new Date();
console.log(MyDate);
var MyOffset = MyDate.getTimezoneOffset();
console.log(MyOffset);

出力:

Wed Jun 23 2021 08:29:17 GMT+0500 (Pakistan Standard Time)
-300

出力からわかるように、2 行目は分単位のタイムゾーンオフセットです。最初の行と同じではありません。最初の行では、オフセットが時間単位であるためです。-60 で割って時間に変換することもできます。以下のコードを参照してください。

var MyDate = new Date();
console.log(MyDate);
var MyOffset = (MyDate.getTimezoneOffset()) / -60;
console.log(MyOffset);

出力:

Wed Jun 23 2021 08:29:17 GMT+0500 (Pakistan Standard Time)
5

出力からわかるように、両方の行のオフセットは同じです。getTimezoneOffset() 関数はオフセットのみを返し、UTC または GMT では返さないことに注意してください。

JavaScript の DateTimeFormat() 関数を使用してタイムゾーンを取得する

DateTimeFormat() 関数を使用して、JavaScript でタイムゾーンを取得できます。たとえば、以下のコードを参照してください。

var MyTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
console.log(MyTimeZone);

出力:

UTC

Intl は IANA タイムゾーンを返し、最新のすべてのブラウザと互換性があります。

著者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

関連記事 - JavaScript Date