JavaScript でタイムゾーンを取得する
-
JavaScript の
Date()
関数とslice()
関数を使用してタイムゾーンとそのオフセットを取得する -
JavaScript の
Date()
関数とgetTimezoneOffset()
関数を使用してタイムゾーンオフセットを取得する -
JavaScript の
DateTimeFormat()
関数を使用してタイムゾーンを取得する
このチュートリアルでは、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 タイムゾーンを返し、最新のすべてのブラウザと互換性があります。