広告

Google apps scriptで日付を表示してみよう!

2017年11月27日

Google apps scriptで日付を表示出来たら...

自動取得したデータの管理にもってこいですよね。

あひる
あひる
日付表示や取得は他の指示と一緒に使えれば便利そうだね!
ううこ
ううこ
知っておいて損はないだろう

というわけで今回はGoogle Apps Scriptで日付を取得する方法についてご紹介いたします。

Google apps scriptで日付を取得してみよう!

先に冒頭のGIFで使用したスクリプトをご紹介します。

//googleの日付取得(JST日本標準)
function getdate(){
var formatDate = Utilities.formatDate(new Date(), "JST","yyMMdd");
var ss = SpreadsheetApp.getActiveSpreadsheet();
/*メッセージボックスへ日付を表示*/
Browser.msgBox(formattedDate);
Browser.msgBox("A1セルへ表示します。");
/*A1セルへ今日の日付を表示*/
ss.getRange('A1').setValue(formattedDate)
}

Google apps scriptで日付を表示するには、「Dateオブジェクト」と「Utilities.formatDate」メソッドを使います。

  1. Dateオブジェクトで現在の日付を取得
  2. Utilities.formatDateで日付の書式を指定

といった手順ですね。

そこから

  • メッセージボックスに1を表示
  • 指定のセルへ1を表示

とする上記スクリプトを作成しました。

あひる
あひる
またなんだか難しそうな...
ううこ
ううこ
大丈夫、1つずつ説明しよう

1. Dateオブジェクトで日付を取得する

Dateオブジェクトで現在の日付を取得します。

//Dateオブジェクトで現在の日付けを取得する   
var today = new Date(); /*取得した日付けをtodayに代入*/

あひる
あひる
Dateオブジェクトって何?
ううこ
ううこ
日付や時間を扱うことを簡単にしてくれる目的語のことだ
あひる
あひる
へ〜便利な用語があるんだね

Dateオブジェクト

Dateオブジェクトは日付や時間などを扱うためのメソッドが定義されている。使用することで時間の計算や日付の換算等を簡単に行うことができる。

現在の日付、時刻のオブジェクトを作成
例:today = new Date();

参照元:banban/java/ref_15.html

2. Utilities.fomatDateメソッドで日付の書式を指定する

Utilities.formatDateメソッドで表示する日付の書式を設定します。今回は日付けを西暦・月日で表示してみます。

//取得した日付けを西暦月日で表示する
/*西暦月日をformatdateに代入*/
var formatDate = Utilities.formatDate(today(), "JST","yyyy年M月d日");

あひる
あひる
Utilities.formatDateメソッドの中にある"JST"って何?
ううこ
ううこ
"JST"=日本標準時のことだ。メソッドのタイムゾーンを設定する必要があるのだが、Google apps scriptの標準はGMT(グリニッジ標準)であり日本標準と9時間の時差がある。
あひる
あひる
JSTでタイムゾーン指定しないと現時刻から9時間もずれた時間を取得しちゃうんだね、なるほど...

formatDate(date, timeZone, format)

Java SE SimpleDateFormatクラスで説明されている仕様に従って、日付の書式を表示します。

タイプ 説明
data Date DateStringとしての形式に
timeZone String 結果の出力タイムゾーン
format String SimpleDateFormat仕様ごとのフォーマット

引用元:utilities#formatDate

Logger.logで日付けが取得出来ているか確認

ここまで順調にきたら一度 Looger.log メソッドを追記して日付けが正しく取得出来ているか確認してみましょう。

//Google apps script日付けを取得して表示する//
function 日付け取得(){
  
  /*Dateオブジェクトで取得した日付をtodayに代入*/
  var today =  new Date();  
  /*取得した日付を西暦月日で表示してformatdateに代入*/
  var formatDate = Utilities.formatDate(today(), "JST","yyyy年M月d日");  
  
  /*日付けの取得可否を確認する*/
  Logger.log(formatDate);
}
あひる
あひる
...できた!ログに表示されてるよ!

ううこ
ううこ
OK(日付が変わっているな...)、では取得した日付けをメッセージボックスに表示してみよう。

関数で完成!スプレッドシートのプルダウンを連動する方法

次のページへ >