GoogleAppsScript 日付表示

スプレッドシートに見やすいように日付をフォーマットする方法は以下の2つがあります。

/*formatDateを使用*/
var showDate = Utilities.formatDate(date, timeZone, format);
// 使用例
var showDate = Utilities.formatDate(new Date(), "JST","YYYY':'MM':'dd")
2017:02:27 

/*setNumberFormatを使用*/
var range = SpreadsheetApp.getActiveRange(); //適当に範囲を取得
range.setNumberFormat(format);
range.setValue(date);
//使用例
var range = SpreadsheetApp.getActiveRange();
range.setNumberFormat("yyyy年mm月dd日 dddd");
range.setValue(new Date());
2017年2月27日 月曜日

ただスプレッドシートは賢いみたいで 、以下のようにセルに値をセットすると自動的にフォーマットを適応し、値を取得する際もDateオブジェクトを返すみたいです。

var range = SpreadsheetApp.getActiveRange();
range.setValue('2-27'); //表示は2017/2/27
var value = range.getValue(); // Date Object Mon Feb 27 00:00:00 GMT+09:00 2017

ということで、自動フォーマットをキャンセルしセルに「2-27」と表示したいときは以下のようにフォーマットを指定してあげると良いです。

range.setNumberFormat('@'); // 文字列をそのまま表示するフォーマット