Google Apps Script报错:Utilities.formatDate参数不匹配问题求助
解决Google Apps Script中Utilities.formatDate参数不匹配的报错
你的报错根源是Utilities.formatDate方法的参数不符合要求,该方法必须传入三个参数:日期对象、时区字符串、日期格式字符串,而你的代码只传了两个参数,且第二个参数传了null,导致方法签名不匹配。
修复步骤:
- 补充时区参数:推荐使用
Session.getScriptTimeZone()获取脚本当前时区,也可以手动指定比如"Asia/Shanghai"这类具体时区标识。 - 添加日期格式字符串:根据需求定义格式,比如
"yyyy-MM-dd"(年-月-日)、"MM/dd/yyyy"(月/日/年)等。
修改后的完整代码:
function createNewSheetWithDate() { // 获取当前活跃表格 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); // 获取当前日期并增加两周 var currentDate = new Date(); currentDate.setDate(currentDate.getDate() + 14); // 格式化日期:补充时区和格式参数 var formattedDate = Utilities.formatDate(currentDate, Session.getScriptTimeZone(), "yyyy-MM-dd"); // 生成新工作表名称 var newSheetName = "Inventory - " + formattedDate; // 插入新工作表并设置名称 var newSheet = spreadsheet.insertSheet(newSheetName); }
关键说明:
Session.getScriptTimeZone():自动获取脚本绑定的时区,避免手动指定时区可能出现的偏差。- 日期格式字符串可自定义,比如想要显示星期可使用
"yyyy-MM-dd EEEE",常用规则:yyyy代表四位年份,MM代表两位月份,dd代表两位日期,EEEE代表完整星期名称。
内容的提问来源于stack exchange,提问作者plumqaz17
相关产品推荐
相关产品推荐

