微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

getRange.getValue 从 Google 表格返回错误的日期

如何解决getRange.getValue 从 Google 表格返回错误的日期

var sheetdate = activeSheet.getRange(x,y).getValue() 我使用这一行从谷歌表格中读取日期。表格中的日期是 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" 试图模拟默认日期输出。请参阅下面的参考,并根据您需要为日期输出的内容随意修改

参考:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。