見出し画像

文字列の日付を日付型(Date)に変換する(Google Apps Script)

はじめに

Google Apps Scriptでカレンダーを使うときに、"2023/5/5"と文字ではなく、Date型で扱うみたい。
そこで、stringをDate型に変換してみた。

stringからDateに変換してみる

Apps ScriptにはUtilitiesという便利な関数があるみたい。
"Utilities.parseDate()"を使うとかんたんに変換できた。

function parseDatetime() {
  const dateString = '2023/05/05 12:30:00';
  const returnValue = Utilities.parseDate(dateString, 'JST', 'yyyy/MM/dd HH:mm:ss');
  // 	Fri May 05 12:30:00 GMT+09:00 2023
  Logger.log(returnValue);
}

parseDate()をいろいろ試してみる

dateの内容に合わせて、formatの書き方を合わせてあげればなんでもいけそう。
formatに使える文字はJavaのsimpleDateFormatと同じらしい。

// date: 日付を表した文字列
// timeZone: タイムゾーン。日本で使うなら'JST'
// format: 文字列の抜き出したい部分に合わせてフォーマットを指定する
const returnValue = Utilities.parseDate(date, timeZone, format)

日時だけとってみる

function parseDateWithoutTime() {
  const dateString = '2023/05/05 12:30:00';
  const returnValue = Utilities.parseDate(dateString, 'JST', 'yyyy/MM/dd');
  // Fri May 05 00:00:00 GMT+09:00 2023
  Logger.log(returnValue);
}

時分だけ指定してみる

function parseHourAndMinute() {
  const dateString = '12時30分';
  const returnValue = Utilities.parseDate(dateString, 'JST', 'HH時mm分');
  // 	Thu Jan 01 12:30:00 GMT+09:00 1970
  Logger.log(returnValue);
}

おかしいときはErrorが起こる

function parseDateWrongPattern() {
  const dateString = '12時30分';
  try {
    const returnValue = Utilities.parseDate(dateString, 'JST', 'まちがいHH時mm分');
  } catch (e) {
    // 	Exception: Invalid argument: 12時30分
    Logger.log(e);
  }
}

まとめ

どんな日付の文字列か分かっていればかんたんにDate型に変換できそう。

参考

parseDate - Apps Script
クラスSimpleDateFormat - Oracle


この記事が気に入ったらサポートをしてみませんか?