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

如何通过Google Apps Script保留谷歌表格日期时间格式至邮件HTML表格

问题:谷歌表格日期时间格式在邮件中丢失

使用Google Apps Script从表格提取数据生成HTML邮件时,表格中原本显示为7/22/2022、9:00:00 AM的日期时间,提取后在邮件中变成了带时区的完整字符串(如Fri Jul 22 2022 00:00:00 GMT-0500),日志中显示为ISO格式时间戳,需要修正为原表格的显示格式。

解决方案

核心是在getData函数中,对提取到的日期时间对象进行格式化处理,使用Utilities.formatDate方法将其转换为目标格式:

修改getData函数中的日期时间处理逻辑

将原代码中直接赋值日期时间的部分,替换为格式化后的字符串:

function getData() {
  var values = SpreadsheetApp.getActive().getSheetByName("Settings").getRange("B2:H45").getValues();
  values.shift(); //remove headers
  var appearances = [];
  // 获取脚本时区,也可替换为具体时区如"America/New_York"
  var timeZone = Session.getScriptTimeZone();
  
  values.forEach(function(value) {
    var appearance = {};
    appearance.client = value[0];
    appearance.court = value[1];
    // 格式化日期为MM/dd/yyyy格式,空值处理避免报错
    appearance.date = value[2] ? Utilities.formatDate(value[2], timeZone, "MM/dd/yyyy") : "";
    // 格式化时间为h:mm:ss a格式(如9:00:00 AM),空值处理
    appearance.time = value[3] ? Utilities.formatDate(value[3], timeZone, "h:mm:ss a") : "";
    appearance.charges = value[4];
    appearance.notes = value[5];
    appearance.phone = value[6];
    appearances.push(appearance);
  })
  Logger.log(JSON.stringify(appearances));
  return appearances;
}

说明

  • Utilities.formatDate接收三个参数:要格式化的Date对象、时区、格式字符串
  • 格式字符串可根据需求调整:
    • 日期格式MM/dd/yyyy对应7/22/2022,若需dd/MM/yyyy可直接修改
    • 时间格式h:mm:ss a对应9:00:00 AM,若需24小时制可改为HH:mm:ss
  • 时区默认使用脚本的时区,若需固定时区,可将Session.getScriptTimeZone()替换为具体时区标识符(如"Asia/Shanghai")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 11:09:14