getRange.getValue 从 Google 个工作表返回错误日期
getRange.getValue returning wrong date from Google sheets
var sheetdate = activeSheet.getRange(x, y).getValue()
我用这一行从 google 表中读取日期。表格中的日期是 2021-02-01。但是 sheetdate 正在返回值 Sun Jan 31 13:30:00 GMT-05:00 2021。实际输出应为 Mon Feb 1 17:35:00 GMT 05:30
这是 Sourcerer 提到的时区问题。
这个有很多可能的答案,但我更喜欢这个,使用 Utilities
格式化日期,因为您可以控制输出:
function myFunction() {
var sheet = SpreadsheetApp.getActiveSheet();
date = sheet.getRange(1, 1).getValue()
Logger.log(date);
Logger.log(SpreadsheetApp.getActive().getSpreadsheetTimeZone());
Logger.log(Utilities.formatDate(date, SpreadsheetApp.getActive().getSpreadsheetTimeZone(), "E MMM dd HH:mm:ss z yyyy"));
}
对于格式,我在上面使用的 "E MMM dd HH:mm:ss z yyyy"
试图模拟默认日期输出。请参阅下面的参考资料,并根据您需要为日期输出的内容随意修改
参考:
var sheetdate = activeSheet.getRange(x, y).getValue()
我用这一行从 google 表中读取日期。表格中的日期是 2021-02-01。但是 sheetdate 正在返回值 Sun Jan 31 13:30:00 GMT-05:00 2021。实际输出应为 Mon Feb 1 17:35:00 GMT 05:30
这是 Sourcerer 提到的时区问题。
这个有很多可能的答案,但我更喜欢这个,使用 Utilities
格式化日期,因为您可以控制输出:
function myFunction() {
var sheet = SpreadsheetApp.getActiveSheet();
date = sheet.getRange(1, 1).getValue()
Logger.log(date);
Logger.log(SpreadsheetApp.getActive().getSpreadsheetTimeZone());
Logger.log(Utilities.formatDate(date, SpreadsheetApp.getActive().getSpreadsheetTimeZone(), "E MMM dd HH:mm:ss z yyyy"));
}
对于格式,我在上面使用的 "E MMM dd HH:mm:ss z yyyy"
试图模拟默认日期输出。请参阅下面的参考资料,并根据您需要为日期输出的内容随意修改
参考: