You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google表格脚本中Utilities.formatDate及时区失效,法语日期输出异常

问题原因及解决方案

这是因为Google Apps Script(GAS)的服务器端运行环境和浏览器(比如Safari)的客户端环境在本地化支持上存在差异,同时GAS的日期格式化行为不仅依赖时区,还和项目的语言设置直接相关:

1. Utilities.formatDate输出英文的原因

Utilities.formatDate里的EEEE(星期全称)和MMMM(月份全称)的本地化结果,是由脚本项目的语言设置决定的,而非你指定的时区。你虽然把时区设为巴黎,但脚本默认语言大概率还是英语,所以输出了英文的星期和月份。

2. toLocaleDateString在GAS中失效的原因

Safari作为浏览器客户端,自带了完整的多语言本地化资源;但GAS的V8运行环境在处理toLocaleDateString时,若不明确指定时区参数,可能会默认使用UTC时区(或未正确匹配语言的脚本时区),而且早期GAS对部分区域设置的支持需要显式配置才能生效。


解决方案

针对Utilities.formatDate的修复

修改脚本项目的语言设置为法语即可:

  • 打开脚本编辑器,点击右上角的齿轮图标(设置)
  • 切换到「常规设置」标签
  • 在「语言」下拉菜单中选择「Français」
  • 保存设置后重新运行脚本,Utilities.formatDate就会输出法语格式的日期了。

针对toLocaleDateString的修复

在配置项中显式添加timeZone参数,确保GAS同时匹配正确的时区和语言本地化规则:

var timezone = "Europe/Paris";
var date = new Date(2018,1,5,15,01,0,0);
dateString = date.toLocaleDateString("fr-FR", { 
  weekday: "long", 
  year: "numeric", 
  month: "long", 
  day: "numeric",
  timeZone: timezone // 显式指定时区
});
Logger.log(dateString); // 此时会输出 "lundi 5 février 2018"

内容的提问来源于stack exchange,提问作者Julien hadim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:16:57