这两行生成相同的输出:
Logger.log(Utilities.formatDate(new Date(), "ET", "yyyy-MM-dd'T'HH:mm:ss'Z'"));
Logger.log(Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd'T'HH:mm:ss'Z'"));
输出:
2:20:37 PM Info -> 2022-01-26T19:20:37Z
2:20:37 PM Info -> 2022-01-26T19:20:37Z
输入无关紧要,总是将日期转换为UTC(可能(,这使得无法打印正确的日期和时间。
在谷歌脚本中格式化日期时间的正确方法是什么?
"ET";不是可接受的时区名称。
为此,您可以使用"America/New_York"。
Apps Script的文档没有指出这一点,这可能会让非开发人员感到沮丧。这是所有时区ID 的列表
此外,通过将"放在Z周围,它将其视为一个字符串,并只返回带有Z的日期。我知道这就是应用程序脚本页上的示例,但这是错误的。
试试这个:
Logger.log(Utilities.formatDate(new Date(), "America/New_York", "yyyy-MM-dd'T'HH:mm:ss z"));
Logger.log(Utilities.formatDate(new Date(), "America/New_York", "yyyy-MM-dd'T'HH:mm:ss Z"));
Logger.log(Utilities.formatDate(new Date(), "America/Los_Angeles", "yyyy-MM-dd'T'HH:mm:ss z"));
Logger.log(Utilities.formatDate(new Date(), "America/Los_Angeles", "yyyy-MM-dd'T'HH:mm:ss Z"));
Logger.log(Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd'T'HH:mm:ss Z"));