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

同一Google表单中两个日期选择器时区不一致的App Script格式化问题

解决Google Apps Script中日期格式化时区不一致的问题

你碰到的核心问题是硬编码时区引发的夏令时/时区偏差:你用GMT+1做格式化时区,但表单提交的日期是CEST(GMT+2,夏令时)时区的00:00:00,两者差1小时,直接格式化就会把日期推前一天(从4月1日变成3月31日)。

给你两个靠谱的解决方案:

1. 使用脚本项目的时区(最稳妥)

不要硬编码时区字符串,而是用Session.getScriptTimeZone()获取脚本项目配置的时区,这样能保证格式化和脚本运行环境一致,自动适配夏令时:

// 获取脚本配置的时区
const scriptTimeZone = Session.getScriptTimeZone();
// 使用这个时区格式化日期
Logger.log('Original value: '+data[0][column]+' - Data for document: '+Utilities.formatDate(data[0][column], scriptTimeZone, "dd-MM-yyyy"));

2. 使用地区时区字符串(适配夏令时)

如果需要固定使用某个地区的时区(比如CEST对应的欧洲时区),不要用GMT+1或GMT+2,而是用具体的地区时区ID(比如"Europe/Paris"、"Europe/Brussels"),这类ID会自动处理夏令时和冬令时的切换:

Logger.log('Original value: '+data[0][column]+' - Data for document: '+Utilities.formatDate(data[0][column], "Europe/Paris", "dd-MM-yyyy"));

额外检查步骤

你可以先确认脚本的时区配置是否正确:

  • 打开脚本编辑器,点击顶部菜单的「文件」>「项目属性」
  • 切换到「信息」标签,查看「时区」设置
  • 如果当前是GMT+1,建议改成对应地区的时区(比如Europe/Amsterdam),避免夏令时期间的偏差

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:18:12