谷歌表格应用脚本 toLocaleString 返回 M01 而不是一月

Posted

技术标签:

【中文标题】谷歌表格应用脚本 toLocaleString 返回 M01 而不是一月【英文标题】:Google Sheet App Script to toLocaleString returning M01 not January 【发布时间】:2021-12-13 05:18:46 【问题描述】:

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

提前感谢您的帮助。

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

【问题讨论】:

【参考方案1】:

我遇到了同样的问题。当时,问题的原因是语言环境值。所以,我认为当我看到你的脚本时,default locale 可能是你的问题的原因。那么比如从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() 返回空值。因为脚本不是由活动用户运行的。因此,我建议手动设置语言环境。

参考:

toLocaleString()

【讨论】:

不幸的是,它在使用“en-US”时提供了相同的结果。你的解释很有道理,我认为就是这样。 太奇怪了,我在做了其他事情后又回到了这个问题上,真的没有改变任何东西,它正在工作。也许我胖拇指的东西。非常感谢。 @JAK 感谢您的回复。很高兴您的问题得到解决。

以上是关于谷歌表格应用脚本 toLocaleString 返回 M01 而不是一月的主要内容,如果未能解决你的问题,请参考以下文章

谷歌应用程序脚本电子表格字符串检索问题

谷歌应用程序脚本在第一次运行时授予用户权限访问电子表格上的服务,而无需打开脚本编辑器

使用谷歌应用脚​​本从电子表格数据中检索行

限时后自动提交谷歌表格

使用谷歌表格公式检查appsscript项目触发器是不是存在

javascript 一个应用程序脚本示例,用于从谷歌电子表格中获取大查询数据。更多信息:http://wp.me/pB1lQ-19i