【问题标题】:Wrong Date google spread sheet错误日期谷歌电子表格
【发布时间】:2018-09-16 11:48:39
【问题描述】:

我正在通过 Google Drive API 用 Ja​​vaScript 阅读 Google 表格。

我有这个函数来获取最后一次修改 var dt = file.getLastUpdated() 它给了我这个结果 4/5/2018 8:48:22 不是我当前的时间。

我使用var formattedDate = Utilities.formatDate(file.getLastUpdated() , "GMT", "yyyy.MM.dd HH:mm:ss.SSS"); 将日期转换为格林威治时间,但仍然是同样的问题。 我将我的谷歌脚本项目的时区更正为 (GMT+01:00) 柏林,但日期时间仍然错误

【问题讨论】:

  • 你预计什么时间?
  • Google 表格设置为几点?
  • 现在 2018 年 4 月 6 日下午 3:11 给我 2018.04.06 13:11:32.396

标签: google-apps-script google-sheets google-drive-api


【解决方案1】:

您应该在formatDate() 中使用“CET”。

Utilities.formatDate(file.getLastUpdated() , "CET", "yyyy.MM.dd HH:mm:ss.SSS");

formatDate() 函数采用 3 个参数:日期、时区和格式。如果您传递“GMT”,则日期/时间将显示在该时区。相反,您需要将其传递给“CET”(中欧时间)才能在该时区显示时间。

编辑:一种可能更稳定、可以更好地处理夏令时(CET 与 CEST)的方法是使用Session.getScriptTimeZone()。这确实要求你已经设置了你的脚本时区,你已经正确地做到了。 (可能没有区别,因为我不确定这是如何处理的。)

Utilities.formatDate(file.getLastUpdated(), Session.getScriptTimeZone(), "yyyy.MM.dd HH:mm:ss.SSS");

【讨论】:

  • 你是对的!你能解释一下我的问题是什么
  • @MokiNex 当然可以。我修改了答案以添加解释。我希望它有所帮助。
【解决方案2】:

检查时区设置。 (文件 > 电子表格设置)时区是第二个选项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多