如何在 Apps 脚本中将字符串转换为日期

Rya*_*ith 4 google-apps google-apps-script

我在将日期字符串(例如“17/08/2012”)获取到日期以便将其用于比较另一个日期时遇到一些问题。

我希望“17/08/2012”生成日期“17/08/2012 00:00:00 GMT”,以便可以正确使用它进行比较。我认为这将是我想做的事情中最简单的部分,但显然不是。请参阅下面我当前的代码。

function dateToString(dateString) {
  var dateArray = dateString.split("/");
  var year = dateArray[2];
  var month = dateArray[1];
  var day = dateArray[0];
  var date = new Date(year, month - 1, day);

  return date;
}
Run Code Online (Sandbox Code Playgroud)

这段代码当前生成“Fri Aug 17 16:00:00 PDT 2012”,我完全不知道为什么它说 4pm。在过去的一个小时里,我一直在尝试多种不同的方法来做到这一点,但似乎仍然无法做到正确。有什么想法可以让它正确转换吗?

一如既往,我们非常感谢任何帮助。

Ser*_*sas 5

你的代码是正确的。16 小时 PDT 是太平洋时区的时间,如果我没记错的话,比 GMT 早 9 小时。您应该检查脚本和电子表格的时区设置,以便所有日期操作都可以正常进行。请记住,即使设置良好,记录器有时也会显示 PDT 值(至少过去经常发生在我身上......)您始终可以使用以下命令来选择如何显示日期对象Utilities.formatDate()

有关日期对象的更多信息,请查看此参考页面