GASで今日の日付(曜日)を取得する方法(Date.getDayメソッド)

Google Apps Script(GAS)では今日の日付を取得したいシーンが多いです。

そこで、GASで実行した今日の日付を取得する方法を解説します。

GASの処理で実行当日を取得

Google Apps Script(GAS)はサーバレスのスクリプトサービスで、様々な自動化処理を行います。

GASの処理の中で「今日」の日付を取得したいケースが出てきます。

例えば、レポートなどに今日の日付を指定して、実行当日のデータを取得する場合です。

そうしたGAS実行で今日の日付が必要になってきます。

GASの日付操作はDateオブジェクト

Google Apps Script(GAS)の日付関連の操作を行うために、Dateオブジェクト(Dateクラス)が用意されています。

Dateオブジェクトは下記の記述方法で定義します。

let date = new Date();

Dateオブジェクトには色々な日付情報を取得・設定するメソッドが用意されています。

そうしたDateオブジェクトのメソッドを駆使して、GASで日付操作を行います。

GASで今日の日付を取得するには?

それでは掲題のGoogle Apps Script(GAS)で今日の日付を取得するには、どうすればよいでしょうか?

実は先程紹介したDateオブジェクトを定義した際に、引数を指定しないと現在の時刻がデフォルトで設定されます。

それゆえにDateオブジェクトを引数なしで定義すれば、今日の日付が取得可能です。

実際にGASのサンプルコードでDateオブジェクトを使って今日の日付が取得できることを解説します。

function myFunction() {
  //今日の日付をDateオブジェクトで取得
  let today = new Date();
  //今日の日付を実行ログに出力
  console.log(today);
}

実行ログは英語の日付フォーマットですが、GASの実行時刻と同じ時刻です。

それゆえにDateオブジェクトを引数なしで定義すれば今日の日付が取得できます。

今日の日付フォーマットを変更方法

さきほど今日の日付をGoogle Apps Script(GAS)で取得しました。

しかし、実行ログに出力された今日の日付は英語でのフォーマットのため扱いにくいです。

そうした場合には、Utilities.formateDateメソッドで日付フォーマットを変換できます。

GASのUtilities.formateDateメソッドで日付フォーマット変換方法は記事で解説しています。

実行ログの出力を「yyyy年MM月dd日」という日本でよく使う日付フォーマットに変換してみます。

function myFunction() {
  //今日の日付をDateオブジェクトで取得
  let today = new Date();
  //日付フォーマットをyyyy年MM月dd日に変更
  today = Utilities.formatDate(today,'JST','yyyy年MM月dd日');
  //今日の日付を実行ログに出力
  console.log(today);
}

new Date()で定義した今日の日付をUtilities.formateDateメソッドでyyyy年MM月dd日というフォーマットに変換しています。

日付フォーマットを変換すると、Dateオブジェクトから文字列型のStringオブジェクトに変わり、再度日付として操作できないので注意しましょう。

このようにUtilities.formateDateメソッドを使えば、今日の日付を好きなフォーマットで取得可能です。

今日の曜日はgetDayメソッドで取得

では、今日の曜日を取得するにはどうすればよいでしょうか。

今日の曜日を取得するためにはDate.getDay()メソッドを使用します。

function myFunction() {
  //今日の日付をDateオブジェクトで取得
  let today = new Date();
  //今日の日付を実行ログに出力
  console.log(today);
  //今日の曜日の数字(0~6)を実行ログに出力
  console.log(today.getDay());  
}

getDayメソッドを使うと、曜日に対応した0~6の数字が戻り値で取得できます。

  • 0:日曜日
  • 1:月曜日
  • 2:火曜日
  • 3:水曜日
  • 4:木曜日
  • 5:金曜日
  • 6:土曜日

そのままでは曜日が数字で表現されているため、switch文などの条件分岐で数字に応じて曜日を判定します。

switch文の判定式にtoday.getDay()を指定し、case句に0~6に対応した曜日をログ出力するサンプルコードを用意しました。

function myFunction() {
  //今日の日付をDateオブジェクトで取得
  let today = new Date();
  //今日の日付を実行ログに出力
  console.log(today);
  //switch文で0~6の曜日を判定して今日の曜日をログ出力
  switch(today.getDay()){
    case 0 : 
      console.log('日曜日');
      break;
    case 1 :
      console.log('月曜日');
      break;      
    case 2 :
      console.log('火曜日');
      break;      
    case 3 :
      console.log('水曜日');
      break;      
    case 4 :
      console.log('木曜日');
      break;      
    case 5 :
      console.log('金曜日');
      break;      
    case 6 :
      console.log('土曜日');
      break;      
  }
}

今回は日曜日に実行したので、getDay()が0となり「日曜日」と実行ログに表示されます。

今日の日付で曜日も取得したい場合は、getDayメソッドを活用しましょう。

まとめ・終わりに

今回、Google Apps Script(GAS)で今日の日付を取得する方法を紹介しました。

Dateオブジェクトを引数指定せずに定義すると、今日の日付オブジェクトを取得可能です。

ただDateオブジェクトの日付フォーマットは英語なので、任意のフォーマットに変換したい場合はUtilities.formateDateを用いましょう。

さらに今日の曜日を取得したい場合はgetDay()で日曜日~土曜日に対応した数字(0~6)が取得できるので、switch文の条件分岐で曜日判定できるのを覚えておきましょう。