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 为空值。因为脚本不是 运行 活跃用户。至此,我建议手动设置语言环境。
参考:
我从一个单元调用了以下应用程序脚本,我预计结果是一月,但 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 为空值。因为脚本不是 运行 活跃用户。至此,我建议手动设置语言环境。