JavaScript

レシピ

日付・時間

日付や時刻を取得する

現地時刻や協定世界時の年月日時分秒を取得する方法について解説します。

この記事のポイント

  • 現地時刻と世界協定時の時間はそれぞれ用意されたメソッドを使って取得する
  • タイムゾーンを指定するときはtoLocaleStringメソッドで現地の時刻を取得する

目次

現地時刻の日付と時刻を取得

Dateオブジェクトのインスタンスを作成して各日時に対応するメソッドを使用することで、次のように現地時刻に基づいた日付と時間を取得することができます。

コード例

// Dateオブジェクトのインスタンスを作成
var date = new Date();

// 現在の日時
console.log(date); // Thu May 28 2020 19:35:36 GMT+0900 (日本標準時)

// タイムスタンプ
console.log(date.getTime()); // 1590739165180

// 年
console.log(date.getFullYear()); // 2020

// 月(0を1月として開始)
console.log(date.getMonth()); // 4

// 日
console.log(date.getDate()); // 29

// 曜日(0を日曜として開始)
console.log(date.getDay()); // 5(5は金曜日)

// 時
console.log(date.getHours()); // 16

// 分
console.log(date.getMinutes()); // 59

// 秒
console.log(date.getSeconds()); // 25

// ミリ秒
console.log(date.getMilliseconds()); // 180

まずは「new Date()」を実行して、Dateオブジェクトのインスタンスを作成する必要があります。
取得する現地時刻はJavaScriptが実行された環境から自動的に設定されます。

「月」を取得するgetMonthメソッドは値が0から開始になっている点に注意が必要です。
0は1月、1は2月、2は3月と続いていき、11が12月となります。

「曜日」を取得するgetDayメソッドも同に0から開始になり、0が日曜、1は月曜、2は火曜と続いていき、6の土曜まで続きます。

以下の表はDateオブジェクトの日付・時刻を取得するメソッド一覧です。

メソッド名内容
dateメソッド現地時刻の日時を文字列(String)で取得。
getTimeメソッド現地時刻のタイムスタンプを数値(Number)で取得。
getFullYearメソッド現地時刻の「年」を4桁の数値(Number)で取得。
getMonthメソッド現地時刻の「月」を011の数値(Number)で取得。
0:1月、1:2月、2:3月、3:4月、4:5月、5:6月、6:7月、7:8月、8:9月、9:10月、10:11月、11:12月
getDateメソッド現地時刻の「日」を031の数値(Number)で取得。
getDayメソッド現地時刻の「曜日」を06の数値(Number)で取得。
0:日曜、1:月曜、2:火曜、3:水曜、4:木曜、5:金曜、6:土曜
getHoursメソッド現地時刻の「時」を023の数値(Number)で取得。
getMinutesメソッド現地時刻の「分」を数値(Number)で取得。
getSecondsメソッド現地時刻の「秒」を数値(Number)で取得。
getMillisecondsメソッド現地時刻の「ミリ秒」を数値(Number)で取得。

協定世界時を取得する

現地の日時ではなく協定世界時に基づいた日時を取得するメソッドも用意されています。
上記の各メソッド名に「UTC」を追加したものになり、得られる値の形式も共通しています。

メソッド名内容
toUTCStringメソッド協定世界時の日時を文字列(String)で取得。
getUTCFullYearメソッド協定世界時の「年」を4桁の数値(Number)で取得。
getUTCMonthメソッド協定世界時の「月」を011の数値(Number)で取得。
0:1月、1:2月、2:3月、3:4月、4:5月、5:6月、6:7月、7:8月、8:9月、9:10月、10:11月、11:12月
getUTCDateメソッド協定世界時の「日」を031の数値(Number)で取得。
getUTCDayメソッド協定世界時の「曜日」を06の数値(Number)で取得。
0:日曜、1:月曜、2:火曜、3:水曜、4:木曜、5:金曜、6:土曜
getUTCHoursメソッド協定世界時の「時」を023の数値(Number)で取得。
getUTCMinutesメソッド協定世界時の「分」を数値(Number)で取得。
getUTCSecondsメソッド協定世界時の「秒」を数値(Number)で取得。
getUTCMillisecondsメソッド協定世界時の「ミリ秒」を数値(Number)で取得。

各メソッドの使い方も現地時刻と共通しています。

コード例

// Dateオブジェクトのインスタンスを作成
var date = new Date();

// 現在の日時
console.log(date.toUTCString()); // Fri, 29 May 2020 08:09:27 GMT

// 年
console.log(date.getUTCFullYear()); // 2020

// 月(0を1月として開始)
console.log(date.getUTCMonth()); // 4

// 日
console.log(date.getUTCDate()); // 29

// 曜日(0を日曜として開始)
console.log(date.getUTCDay()); // 5

// 時
console.log(date.getUTCHours()); // 8

// 分
console.log(date.getUTCMinutes()); // 9

// 秒
console.log(date.getUTCSeconds()); // 27

// ミリ秒
console.log(date.getUTCMilliseconds()); // 572

タイムゾーンを設定する

現地時刻のタイムゾーンを指定するには、toLocaleStringメソッドでタイムゾーンを指定した時刻を取得した後にDateオブジェクトを作成します。
以下の例ではオブジェクトを作成する「new Date」が入れ子になっていますが、内側では指定したタイムゾーンの時間取得のみを行っています。

コード例

console.log(new Date().toLocaleString('en-US', {timeZone:'America/Anchorage'}));
// 5/29/2020, 12:32:01 AM

// タイムゾーンを指定してDateオブジェクトのインスタンスを作成
var date = new Date( new Date().toLocaleString('en-US', {timeZone:'America/Anchorage'}));

// 時
console.log(date.getHours()); // 0

// 分
console.log(date.getMinutes()); // 32

// 秒
console.log(date.getSeconds()); // 1

1行目は時刻の確認用に指定したタイムゾーンの時刻をただ出力しています。
今回は例としてアメリカのアンカレッジを指定しています。

Dateオブジェクトはインスタンスを作成するときに、パラメータで日時の情報を渡すと指定した時刻のインスタンスを作成することができます。
この機能を利用して、インスタンス作成前に指定したタイムゾーンの時間を取得してパラメータに渡すこと、任意のタイムゾーンの時刻をgetHoursメソッドなどの各メソッドから取得できるようになります。

こちらの記事は役に立ちましたか?

ありがとうございます。
もしよろしければ、あわせてフィードバックや要望などをご入力ください。

コメントありがとうございます!
運営の参考にさせていただきます。