【问题标题】:getRange.getValue returning wrong date from Google sheetsgetRange.getValue 从 Google 表格返回错误的日期
【发布时间】:2021-05-05 14:46:45
【问题描述】:

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

【问题讨论】:

  • 这似乎是一个时区问题。您是否尝试将值(作为 GMT 时区返回)转换为您的时区)?

标签: google-apps-script google-sheets getvalue


【解决方案1】:

这是 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" 正在尝试模拟默认日期输出。请参阅下面的参考,并根据您需要输出的日期随意修改

参考:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-19
    • 1970-01-01
    • 1970-01-01
    • 2013-05-07
    • 1970-01-01
    • 2012-03-18
    • 1970-01-01
    相关资源
    最近更新 更多