
Photo by
arayan12
文字列の日付を日付型(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