【发布时间】:2019-08-17 03:43:35
【问题描述】:
我已经设置了一个谷歌网络应用程序,该应用程序将数据输入谷歌电子表格并使用新的日期函数为其添加时间戳。我遇到的问题是在午夜到凌晨 1 点之间,日期被推迟到第二天。例如,如果我在 2019 年 12 月 3 日上午 00:45 输入数据,则谷歌电子表格中显示的日期为 2019 年 3 月 13 日上午 00:45。我使用 var timestamp 来显示日期和时间,使用 var date 来显示日期。奇怪的是, var date 得到正确的日期,而时间戳没有,即使它们都在完全相同的时间使用。我似乎只在午夜和凌晨 1 点之间遇到这个问题。非常感谢任何人提供的任何帮助。
var timestamp = Utilities.formatDate(new Date(), "GMT+10", "dd/MM/yyyy kk:mm:ss");
var date = Utilities.formatDate(new Date(), "GMT+10", "dd-MM-yy");
------------------------------------------------------------------------------
var rowValues = [
[state, owner, type, fleet, rego, date, date, site, User, timestamp, comment]
]
var lar = sheet.getLastRow() + 1
var lar1 = archive.getLastRow() + 1
var lar2 = STate.getLastRow() + 1
var request = {
'valueInputOption': 'USER_ENTERED',
'data': [{
'range': 'National Master!A' + lar + ':K' + lar + '',
'majorDimension': 'ROWS',
'values': rowValues
},
{
'range': 'Archive!A' + lar1 + ':K' + lar1 + '',
'majorDimension': 'ROWS',
'values': rowValues
},
{
'range': '' + state + '!A' + lar2 + ':K' + lar2 + '',
'majorDimension': 'ROWS',
'values': rowValues
}
]
};
var response = Sheets.Spreadsheets.Values.batchUpdate(request, "sheet id here");
【问题讨论】:
-
将硬编码时区定义 (GMT+10) 替换为 Session.getScriptTimeZone() 以避免与夏令时相关的问题。
标签: datetime google-apps-script google-sheets timezone google-sheets-api