我正在使用Google Apps Script从我的Google工作表中的一列中提取日期,然后在消息中将其打印出来(例如“您的订阅将于19年2月19日到期”)。
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheetByName("San Diego"));
var sheet = SpreadsheetApp.getActiveSheet();
var lastRow = sheet.getLastRow();
var dataSet = sheet.getRange(StartingRow,2,lastRow-StartingRow+1,9);
var data = dataSet.getValues();
for (i in data) {
var rowData = data[i];
....
工作表上的日期(在rowData [2]中)的格式为MM / DD / YYYY或MM / DD / YY。
但是,当我在邮件中打印日期(下面的变量ExpirationDate)时,显示的日期比工作表中的日期早1天。
这两种情况都会发生:
var ExpirationDate = Utilities.formatDate(rowData[2],Session.getScriptTimeZone(),"MM/dd/yyyy");
和
var ExpirationDateForCompareInt = new Date(rowData[2]);
var ExpirationDate = Utilities.formatDate(ExpirationDateForCompareInt, Session.getScriptTimeZone(),"MM/dd/yyyy");
我认为,如果我正确阅读了文档,则将时区名称中的rowData [2]解释为加利福尼亚(LA)中的日期。我和洛杉矶在同一时区。
有什么主意吗?