Google App Script格式化日期异常 无法生成正确工作表名称
问题原因
- 核心错误是
Utilities.formatDate的格式符使用错误:Google Apps Script的该方法遵循Java SimpleDateFormat格式规范,星期几的短缩写需要用EEE标识,而d是月内天数的标识。你写的ddd会被解析为输出月内天数,所以最终生成的字符串里原本应该显示星期的位置变成了日期,才会出现18 - Oct 18的结果。 - 额外注意时区匹配问题:如果脚本时区和表格时区不一致,可能会出现日期偏移1天的问题,建议统一使用表格的时区而非脚本时区。
修复后代码
function myFunction() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var rawDate = ss.getRange("G3").getValue(); // EEE对应星期短缩写,MMM对应月份短缩写,dd对应两位日期 // 时区使用表格所属时区,避免日期偏移 var formattedDate = Utilities.formatDate(rawDate, ss.getSpreadsheetTimeZone(), "EEE - MMM dd"); ss.insertSheet(formattedDate); }
内容的提问来源于stack exchange,提问作者user2057961
相关产品推荐
相关产品推荐

