设置相同的两个Google Apps Script项目区域设置不一致
解决Google Apps Script中
toLocaleDateString()格式不一致的问题 这个问题的核心原因是:默认情况下,date.toLocaleDateString()会自动使用脚本运行环境的区域设置生成日期格式。绑定到标准表格和表单响应表格的两个脚本,可能因为运行上下文的区域配置不同(比如表单的区域设置和表格默认区域不一致,或者脚本执行时继承了不同用户的默认区域),导致输出的日期格式出现差异。
要彻底解决这个问题,你只需要显式指定区域代码和格式选项,强制让两个脚本生成完全一致的文件夹名称格式。
具体实现代码
比如你想要统一生成26 April 2018这种格式,可以用下面的代码替换原来的toLocaleDateString()调用:
const targetDate = new Date(); // 显式指定区域为英式英语,并定义日期格式规则 const folderName = targetDate.toLocaleDateString('en-GB', { day: 'numeric', month: 'long', // 输出完整月份名称(比如April而不是Apr) year: 'numeric' });
为什么这样有效?
- 当你不指定区域参数时,
toLocaleDateString()会优先使用脚本关联的Google服务(表格/表单)的区域设置,或者当前执行用户的默认区域,这就导致了两个项目的差异。 - 显式指定区域代码(比如
en-GB代表英式英语,en-US代表美式英语)和格式选项后,不管脚本运行在什么环境下,都会生成固定格式的日期字符串。
可选调整
如果之后需要修改格式,只需要调整options对象里的参数:
month: 'short'会输出缩写月份(比如Apr)day: '2-digit'会强制日期显示两位数字(比如05而不是5)- 切换区域代码(比如
fr-FR)可以生成其他语言的日期格式
内容的提问来源于stack exchange,提问作者Ryan
相关产品推荐
相关产品推荐

