参考にしたサイトは一つのセル内に日付と時間を入れてました。
そのサンプルコードでカレンダー登録はできたのですが、日付と時間で2つのセルに分けて正規化(?)した方が再利用しやすいだろうと思いました。
そこで、日付と時間を2つのセルに分けました。
startをstart1とstart2に分けたところは、Loggerで値を確認できました。
僕の書いたコードだと、開始日が意図しない時間になってしまいました。
function createEventFromSheet() { // シートを選択 var sheet = SpreadsheetApp.getActiveSheet(); // 行を選択 for(var i = 23; i <= sheet.getLastRow(); i++) { // セルの値を取得 var start1 = sheet.getRange(i, 1).getValue().toString(); var start2 = sheet.getRange(i, 2).getValue().toString(); var end = sheet.getRange(i, 3).getValue().toString(); var title = sheet.getRange(i, 4).getDisplayValue().toString(); // タイトルがない場合、終了する if(title.length <= 0) { break; } // 開始と終了の日時を取得 var startTime = new Date(start1+" "+start2); Logger.log(start1); Logger.log(start2); var endTime = new Date(end); // オプションを設定 var options = { location: "静大", description: "詳細情報" } // カレンダーを取得 var cal = CalendarApp.getDefaultCalendar(); // カレンダーにイベントを追加 cal.createEvent(title, startTime, endTime, options); } }
参考
function createEventFromSheet() { // シートを選択 var sheet = SpreadsheetApp.getActiveSheet(); // 行を選択 for(var i = 2; i <= sheet.getLastRow(); i++) { // セルの値を取得 var start = sheet.getRange(i, 1).getValue().toString(); var end = sheet.getRange(i, 2).getValue().toString(); var title = sheet.getRange(i, 3).getDisplayValue().toString(); // タイトルがない場合、終了する if(title.length <= 0) { break; } // 開始と終了の日時を取得 var startTime = new Date(start); var endTime = new Date(end); // オプションを設定 var options = { location: "名古屋市", description: "詳細情報" } // カレンダーを取得 var cal = CalendarApp.getDefaultCalendar(); // カレンダーにイベントを追加 cal.createEvent(title, startTime, endTime, options); } }
追記
試してみたこと
var date = new Date(); // 今日の日付を表示 Logger.log(Utilities.formatDate( date, 'Asia/Tokyo', 'yyyy/MM/dd hh:mm:ss'));
で、
[20-05-01 20:10:54:919 JST] 2020/05/01 08:10:54
を得ることができました。近づいてはいるような気がしますが、まだ分かりません。
var date = new Date(); // 今日の日付を表示 Logger.log(Utilities.formatDate( date, 'Asia/Tokyo', 'yyyyMMdd: hhmmss'));
回答1件
あなたの回答
tips
プレビュー