GASのUtilitiesクラスのformatDate()メソッドは、日付オブジェクトを文字列に変換する関数です。第三引数formatには、出力する日付のフォーマットを指定します。
ISO 8601 形式
Sun Oct 15 20:40:58 GMT+09:00 2023
この日付形式は、ISO 8601 形式と呼ばれます。ISO 8601 形式は、世界中で標準的に使用されている日付形式です。
この形式では、年、月、日、時、分、秒、タイムゾーンが、以下の順に指定されます。
YYYY-MM-DDTHH:mm:ssZ
例えば、下記の例では、2023年10月15日20時40分58秒(日本標準時)を表しています。
なお、タイムゾーンは、Z で指定される UTC を省略することもできます。
YYYY-MM-DDTHH:mm:ss
例えば、上記の例では、2023年10月15日20時40分58秒(UTC)を表しています。
ISO 8601 形式は、コンピューターやネットワークで日付をやり取りする際に便利です。
new Dateを実行するとISO 8601 形式になる
GASでnew Date()を実行すると、日付オブジェクトが作成されます。この日付オブジェクトは、デフォルトでISO 8601形式で表現されます。
var now = new Date();
Logger.log(now);
情報 Sun Oct 15 20:40:58 GMT+09:00 2023
日付オブジェクトを別の形式で出力するには、UtilitiesクラスのformatDate()メソッドを使用します。
例えば、以下のコードを実行すると、2023年10月15日20時40分58秒(日本標準時)を「yyyy/MM/dd」というフォーマットで出力します。
const now = new Date();
const formattedDate = Utilities.formatDate(now, null, "yyyy/MM/dd");
console.log(formattedDate); // 2023/10/15 20:40:58
日時情報に対応するアルファベット
日時情報に対応するアルファベットは、以下のとおりです。
日時情報 | 形式 | 例 |
---|---|---|
年 | yyyy | 2023 |
月 | MM | 10 |
日 | dd | 15 |
時 | HH | 19 |
分 | mm | 30 |
秒 | ss | 22 |
例えば、2023年10月15日19時30分22秒を「yyyy/MM/dd HH:mm:ss」というフォーマットで出力するには、以下のコードを実行します。
const now = new Date();
const formattedDate = Utilities.formatDate(now, null, "yyyy/MM/dd HH:mm:ss");
console.log(formattedDate); // 2023/10/15 19:30:22
「yyyy/MM/dd」というフォーマットで出力
また、日付のみを「yyyy/MM/dd」というフォーマットで出力するには、以下のコードを実行します。
const now = new Date();
const formattedDate = Utilities.formatDate(now, null, "yyyy/MM/dd");
console.log(formattedDate); // 2023/10/15
formatDate()メソッドの第二引数timeZoneには、タイムゾーンを指定することができます。指定しない場合は、デフォルトのタイムゾーンが使用されます。
日本標準時(JST)で出力する
例えば、日本標準時(JST)で出力するには、以下のコードを実行します。
const now = new Date();
const formattedDate = Utilities.formatDate(now, "JST", "yyyy/MM/dd HH:mm:ss");
console.log(formattedDate); // 2023/10/15 07:30:22
下記は関数名を含めてログを出力した例です。
function formatDateSample() {
var now = new Date();
Logger.log(now);
var formattedDate = Utilities.formatDate(now, "JST", "yyyy/MM/dd HH:mm:ss");
Logger.log(formattedDate);
}
情報 Sun Oct 15 23:43:27 GMT+09:00 2023
情報 2023/10/15 23:43:27
まとめ
このように、formatDate()メソッドの第三引数formatを指定することで、さまざまなフォーマットで日付を整形することができます。