从电子表格中提取错误的日期

时间:2018-03-06 16:39:08

标签: javascript date google-apps-script

我想从电子表格中提取日期,该电子表格位于" DD dd / mm / yyyy hh:mm:ss"格式并将其放在另一个电子表格中,然后在日历中创建一个事件,问题是当它被提取时,它获得的时区与原始电子表格中的时区不同,并且它随着不同的文档而变化。 Utilities.formatDate()命令对我不起作用,因为它出现在正确的时区。

细胞价值:周一。 02/04/2018 12:00:00

原始电子表格时区:GMT -800

新电子表格时区:GMT-800(也)

function Event(){
  var firstdoc =SpreadsheetApp.openById("ID"); // ouvre le fichier manifest list
  var firstdocsheet = firstdoc.getSheetByName("sheet");
  var date1= new Date(firstdocsheet.getRange(4,10).getValue());
  Logger.log(date1); 
  date1 = Utilities.formatDate(date1, "GMT-800", "dd-MM-yyyy HH:mm:ss");
  Logger.log(date1);   
}

这就是我得到的:

Logger.log([Mon Apr 02 21:00:00 GMT + 02:00 2018]

Logger.log([02-04-2018 11:00:00)

我知道代码有效,但我不知道为什么自开始以来错误的日期,请问有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

使用以下示例验证您的代码:

function test() {
  var date = new Date('03/08/2018 09:51:00');
  Logger.log(date)
  Logger.log(Utilities.formatDate(date, "GMT-08:00", "dd-MM-yyyy HH:mm:ss"));
}

日志输出:

[18-03-08 12:31:31:518 CET] Thu Mar 08 09:51:00 GMT+01:00 2018
[18-03-08 12:31:31:520 CET] 08-03-2018 00:51:00

您使用的机制似乎是正确的,因此问题可能在您的单元格值或时区中,如评论中所指出的那样。