Google 脚本 "Utilities.formatDate" 不对时区参数做任何处理
Google Scripts "Utilities.formatDate" does nothing with the time zone parameter
这两行生成相同的输出:
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(可能),这使得无法打印正确的日期和时间。
在 Google 脚本中格式化日期时间的正确方法是什么?
“ET”不是可接受的时区名称。
为此,您将使用 'America/New_York'。
Apps Script 的文档没有指出这一点,这可能会让 non-developers 感到沮丧。这是所有 timeZone ids
的列表
此外,通过将 '' 放在 Z 周围,它会将其视为一个字符串,而只是 returns 带有 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"));
这两行生成相同的输出:
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(可能),这使得无法打印正确的日期和时间。
在 Google 脚本中格式化日期时间的正确方法是什么?
“ET”不是可接受的时区名称。
为此,您将使用 'America/New_York'。
Apps Script 的文档没有指出这一点,这可能会让 non-developers 感到沮丧。这是所有 timeZone ids
的列表此外,通过将 '' 放在 Z 周围,它会将其视为一个字符串,而只是 returns 带有 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"));