【发布时间】:2021-10-02 00:03:28
【问题描述】:
当我查看电子表格上的日期时,我看到的是 2005 年 11 月 1 日。
当我将它读入谷歌脚本时,它变为 2005 年 10 月 31 日。
我在 PDT,我的电子表格在 PDT,(UTC-8)。
是否有一种简单的方法可以从电子表格中读取日期,使其显示的日期与电子表格上的日期相同?
这不起作用:
let date2 = Utilities.formatDate(date, Session.getScriptTimeZone(), "yyyy-MM-dd");
这是一个我能想到的最简单的例子:
function myFunction() {
let data = SpreadsheetApp.getActive()
.getSheetByName("Sheet1")
.getDataRange()
.getValues();
let header = data[0]
data.splice(0,1) // remove header
data.forEach(row => {
let date = row[0]
let month = date.getMonth() + 1 // zero based month
let day = date.getDate()
let year = date.getFullYear()
row[1] = month;
row[2] = day;
row[3] = year;
})
data.splice(0,0,header) // put header back
SpreadsheetApp.getActive()
.getSheetByName("Sheet1")
.getDataRange()
.setValues(data);
}
Date MM DD YYYY
11/1/2005 0:00:00 10 31 2005 <-- 1 day behind
11/1/2007 0:00:00 10 31 2007
11/1/2009 0:00:00 10 31 2009
11/1/2011 0:00:00 10 31 2011
11/1/2015 0:00:00 10 31 2015
11/1/2017 0:00:00 10 31 2017
11/1/2019 0:00:00 10 31 2019
11/1/2021 0:00:00 10 31 2021
【问题讨论】:
-
我认为 GMT-7 是山区时间 PDT 是 GMT-8 检查here
-
知道了,修复了...
标签: javascript google-apps-script google-sheets