Google Sheet toLocaleString 的应用脚本返回 M01 而不是一月

Google Sheet App Script to toLocaleString returning M01 not January

我从一个单元调用了以下应用程序脚本,我预计结果是一月,但 M01 又回来了。这种一般逻辑在其他地方使用得很好,所以不太确定我做错了什么。 getFullYear 工作正常。

在此先感谢您的帮助。

function actualBudget(date) {
 const dateObj = new Date(date)
 const month = dateObj.toLocaleString('default', { month: 'long' })
 const year = dateObj.getFullYear().toString()
 return month
}

我和你遇到了同样的问题。当时,问题的原因是语言环境值。因此,当我看到您的脚本时,我认为 default 语言环境可能是您遇到问题的原因。因此,例如,将 default 修改为 en-US 如下所示如何?

发件人:

const month = dateObj.toLocaleString('default', { month: 'long' })

收件人:

const month = dateObj.toLocaleString("en-US", { month: 'long' });
  • 在这种情况下,请将 en-US 修改为您要使用的语言环境。

注:

  • 不使用自定义函数时,可以使用Session.getActiveUserLocale().replace("_", "-")。但在自定义函数的情况下,Session.getActiveUserLocale() returns 为空值。因为脚本不是 运行 活跃用户。至此,我建议手动设置语言环境。

参考: