gmailからスプレッドシートに条件に合ったメールを取得し、yyyy/MM/dd/hh/mmの書式にしたいのですが、yyyy/MM/ddの書式になってしまいます。
可能ならgmailをでメールを受信した日時をgooglespreadsheetに書き出したいのですが、苦戦しています。
どなたかわかる方教えていただけますでしょうか?
【試したこと】spreadsheetのセルの書式を日付⇒日時に変更しましたが、添付ファイルのような日時になり、メールの受信時間とはことなる時間になってしまいます。
gas
1 2// 設定情報 3function getConfig() { 4 return { 5 6 spreadSheetId: 'ID',// スプレッドシートの ID 7 spreadSheetTabName: 'シート1',// スプレッドシートのタブ名 8 searchText:"メンバー" // Gmail の検索ワード 9 }; 10} 11 12function isBussinessDay(date){ 13 //0が日曜、6が土曜 14 if(date.getDay() == 0 || date.getDay() == 6){ 15 return false; 16 } 17 const calendar_ID ='ja.japanese#holiday@group.v.calendar.google.com'; 18 const calendar_JA =CalendarApp.getCalendarById(calendar_ID); 19 const todayEvent = calendar_JA.getEventsForDay(date); 20 if(todayEvent.length > 0){ 21 return false; 22 } 23 return true; 24} 25// 実行関数 26function main() { 27 //指定日の日付をdateとして入力 28 let spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); 29 let sheet = spreadsheet.getActiveSheet(); 30 let range = sheet.getRange("J2"); 31 let value = range.getValue(); 32 let date = value; 33 let business_flg =false; 34 35 //指定した日付を取得 36 let dateBefore = new Date(date.getFullYear(),date.getMonth(),date.getDate()+1,date.getHours(),date.getMinutes()); 37 let timeStampBefore = Utilities.formatDate(dateBefore, 'Asia/Tokyo', 'yyyy/MM/dd'); 38 let timeStampAfter = Utilities.formatDate(date, 'Asia/Tokyo', 'yyyy/MM/dd'); 39 Logger.log(timeStampBefore); 40 41 const config = getConfig(); 42 const SEARCH_BOX = `subject:${config.searchText} before:${timeStampBefore} after:${timeStampAfter}`; // before:取得したい日にちの次の日 after:取得したい日にち 43 /* スプレッドシートのシートを取得と準備 */ 44 const mySheet = SpreadsheetApp.openById(config.spreadSheetId).getSheetByName(config.spreadSheetTabName); //シートを取得 45 let messages = [['date','Subject', 'From', 'To','Body']]; 46 GmailApp 47 .search(SEARCH_BOX, 0, 500) 48 49 .forEach(function (thread) { 50 thread.getMessages().forEach(function (message) { 51 let date = message.getDate(); 52 let subject = message.getSubject(); 53 let to = message.getTo(); 54 let from = message.getFrom(); 55 let plainBody = message.getPlainBody().slice(0,100); 56 messages.push([date,subject, from, to,plainBody]); 57 58 }); 59 Logger.log(date); 60 }); 61 if (messages.length === 1) return; 62 mySheet.getRange('A1:E' + messages.length ).setValues(messages); 63}
回答2件
あなたの回答
tips
プレビュー