运行证书生成脚本时遇Utilities.formatDate参数不匹配错误
问题解决:Utilities.formatDate参数不匹配异常
错误原因
Utilities.formatDate()方法要求第一个参数必须是Date类型对象,但你传入的date变量是字符串类型,导致参数签名与方法要求不匹配,触发了这个异常。
修复方案
情况1:date是标准日期格式字符串(如"YYYY-MM-DD"、"MM/DD/YYYY"等)
直接将字符串转换为Date对象后传入方法:
// 转换字符串为Date对象 const dateObj = new Date(date); // 替换幻灯片中的日期占位符 empSlide.replaceAllText("<<Date>>", Utilities.formatDate(dateObj, Session.getScriptTimeZone(), "dd, MMMM, yyyy"));
情况2:date是非标准日期格式字符串
如果你的date是自定义格式(比如"DD-MM-YYYY"),需要先拆分解析后构造Date对象:
// 示例:假设date格式为"DD-MM-YYYY" const [day, month, year] = date.split("-"); // 注意:JavaScript的Date月份是0基索引(0=1月,11=12月),所以要减1 const dateObj = new Date(year, month - 1, day); empSlide.replaceAllText("<<Date>>", Utilities.formatDate(dateObj, Session.getScriptTimeZone(), "dd, MMMM, yyyy"));
验证步骤
可以先添加一行代码确认date的类型,排查问题:
console.log(typeof date); // 如果输出为"string",则说明需要转换类型
内容的提问来源于stack exchange,提问作者Matthew Harrison
相关产品推荐
相关产品推荐

