0

我感觉好像我已经翻阅了几乎所有关于 JS 和 GAS 中日期的文档。特别是关于夏令时问题。因为在 DST 更改之前我没有遇到过这样的问题。我想我错过了一些简单的东西。问题是,尽管设置了所有设置,但格式实用程序输出的日期时间仍然不正确。下面是调试器的屏幕截图和我正在运行的代码片段。值“日期”是我所关心的。它是在第 53 行的脚本中创建的。

var date = new Date(); //line 53
date = Utilities.formatDate(date, "Chicago/America", "MM/dd/yyyy HH:mm:ss zzzz"); //line 61

我在KC。(中部时间或 UTC-06:00 或其他)。

我有一种感觉,这对我来说将是一个面对面的时刻,但是哦,好吧!感谢您的任何帮助!

调试输出

4

1 回答 1

3

我通常使用没有任何问题的只是:

  var FUS1=new Date(dateObject).toString().substr(25,6)+":00";// get the timeZone part of the string coming from the date you are working on (an event)
  dateString = Utilities.formatDate(dateObject, FUS1, "MM/dd/yyyy HH:mm:ss");// use it in formatDate and it will have the right value for every season...

请注意,您date在示例代码中使用了 2 次:一次作为字符串结果,一次作为同一行中的日期对象...

根据您的评论进行编辑:

例如,假设日期戳在 A2 中,以下代码应返回正确的时间。

  var date = SpreadsheetApp.getActiveSheet().getRange('A2').getValue();
  var FUS1=new Date(date).toString().substr(25,6)+":00";
  dateString = Utilities.formatDate(date, FUS1, "MM/dd/yyyy HH:mm:ss");
于 2013-03-13T20:56:50.717 回答