earthpg:GAS専門のプログラミングスクール

5秒で確認!GASで日本時間の現在時刻を取得する方法

GASを使って何か便利なことをしてみたいんですが、例えば日本時間の現在時刻を取得するにはどうしたらいいんでしょう・・・?
猫男
猫男
catman
catman
よし、catmanが「GASで日本時間の現在時刻」を取得する方法を教えてやろう。

GASで現在時刻を取得する基本

GAS(Google Apps Script)では、JavaScriptと同じようにDateオブジェクトを使って現在時刻を取得することができる。まずは基本を押さえておこう。

Dateオブジェクトの利用

Dateオブジェクトを使用して、現在の日付と時刻を取得する方法だ。


function getCurrentTime() {
  var now = new Date();
  Logger.log(now);
}

✅ new Date()でDateオブジェクトを作成し、システムの現在の日付と時刻を取得する。

日本時間に変換する方法

デフォルトのDateオブジェクトから日本時間を取得するためには、時差を考慮する必要がある。以下のような方法を使う。


function getCurrentTimeInJapan() {
  var now = new Date();
  var timeZone = 'Asia/Tokyo';
  var timeInJapan = Utilities.formatDate(now, Session.getScriptTimeZone(), 'yyyy/MM/dd HH:mm:ss');
  Logger.log(timeInJapan);
}

✅ Utilities.formatDate()を使って、指定したタイムゾーン(ここでは’Asia/Tokyo’)でフォーマットした日付文字列を作成する。

GASを使った時間操作の応用

時間の操作を行うことで、より複雑な処理も可能になる。

未来の日付を取得する

例えば、1時間後の時刻を取得することも可能だ。


function getOneHourLater() {
  var now = new Date();
  now.setHours(now.getHours() + 1);
  Logger.log(now);
}

✅ DateオブジェクトのsetHoursメソッドを用いて、現在の時刻を1時間進める方法。

過去の日付を取得する

同様に、1日前の時刻を取得するにはどうするかも見ておこう。


function getOneDayEarlier() {
  var now = new Date();
  now.setDate(now.getDate() - 1);
  Logger.log(now);
}

✅ setDateメソッドは、日付を指定した数だけ移動させることができる。

まとめ:GASで現在時刻を操作する

  • new Date()で現在時刻を取得
  • Utilities.formatDate()で日本時間に変換
  • 時間の加減にはsetHours()setDate()を利用
こんなに簡単に日本時間を取得できるんですね!これを使っていろんなことができそうです!
猫男
猫男
catman
catman
そうだ、日本時間を上手く使っていろんなアイディアを実現してみてくれ。

練習問題:GASで週の始まりの日付を取得する

今週の日曜日の日付をGASで取得するスクリプトを書いてみよう。

 

 

 

解答解説


function getStartOfWeek() {
  var today = new Date();
  var dayOfWeek = today.getDay();
  var startOfWeek = new Date(today);
  startOfWeek.setDate(today.getDate() - dayOfWeek);
  Logger.log(startOfWeek);
}

このスクリプトは以下の方法で動いている:
– 現在の日付を取得し、その曜日を示す数値(0が日曜日)を取得する。
– その数値を現在日付から引くことで、今週の日曜日の日付を計算する。