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

Google Apps Script中如何将表单日期转为指定英文长格式?

解决Google表单日期转"MMMM d, yyyy"格式的问题

问题出在表单提交的日期可能被识别为纯文本,而setNumberFormat()只对日期/数值类型的单元格生效,对文本格式的内容不起作用。下面给你两种针对性的解决方案:

方案1:处理表单提交的单个日期(适合触发器场景)

既然你是在处理表单提交的响应(用了e.values),直接把获取到的文本日期转成日期对象,再格式化后写入单元格:

function onFormSubmit(e) {
  var sheet = SpreadsheetApp.getActiveSheet();
  // 获取表单提交的日期文本
  var memoDateText = e.values[3];
  
  // 把文本转成日期对象
  // 注意:如果是两位年份(比如18),需要补全为四位
  var dateParts = memoDateText.split("/");
  var year = dateParts[2].length === 2 ? "20" + dateParts[2] : dateParts[2];
  var memoDate = new Date(year, dateParts[0] - 1, dateParts[1]); // 月份是0-based
  
  // 格式化为"March 15, 2018"样式
  var formattedDate = Utilities.formatDate(
    memoDate,
    Session.getScriptTimeZone(), // 或者指定具体时区如"America/New_York"
    "MMMM d, yyyy"
  );
  
  // 写入到对应的单元格(比如最后一行的D列)
  sheet.getRange(sheet.getLastRow(), 4).setValue(formattedDate);
}

方案2:批量转换已有文本日期

如果需要处理D列已有的所有文本日期,可以遍历单元格批量转换:

function convertDateFormat() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var lastRow = sheet.getLastRow();
  var dateRange = sheet.getRange("D2:D" + lastRow);
  var values = dateRange.getValues();
  
  var formattedValues = values.map(function(row) {
    if (!row[0]) return [row[0]]; // 空单元格跳过
    
    // 拆分日期文本并转成日期对象
    var parts = row[0].split("/");
    var year = parts[2].length === 2 ? "20" + parts[2] : parts[2];
    var date = new Date(year, parts[0]-1, parts[1]);
    
    // 格式化后返回
    return [Utilities.formatDate(date, Session.getScriptTimeZone(), "MMMM d, yyyy")];
  });
  
  // 把格式化后的值写回单元格
  dateRange.setValues(formattedValues);
  
  // 可选:如果希望单元格是日期类型而非文本,用下面的代码替代上面的setValues
  // dateRange.setNumberFormat("MMMM d, yyyy").setValues(
  //   values.map(row => row[0] ? [new Date(row[0])] : row)
  // );
}

关键注意事项

  • 时区问题:Session.getScriptTimeZone()会使用脚本的默认时区,如果你需要特定时区,直接替换成时区字符串(比如"UTC"或"Asia/Shanghai")。
  • 两位年份处理:如果表单返回的是两位年份(如3/15/18),一定要补全为四位(2018),否则new Date()可能会识别成1918年。

内容的提问来源于stack exchange,提问作者Chris Cline US - ADVS

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 07:22:47