Apps Script中formatDate自定义日期格式及报错解决
问题1:修改时间戳格式为dd/mm/yyyy hh:mm:ss
要把原格式m/dd/yyyy hh:mm:ss改成dd/mm/yyyy hh:mm:ss,只需调整Utilities.formatDate的格式字符串即可,注意月份要用大写MM(小写mm代表分钟,别混淆):
// 获取当前时间 const currentTimestamp = new Date(); // 可以用脚本时区,也可以指定固定时区如"GMT" const timeZone = Session.getScriptTimeZone(); // 格式化时间戳为目标格式 const formattedTimestamp = Utilities.formatDate(currentTimestamp, timeZone, "dd/MM/yyyy hh:mm:ss");
问题2:解决Utilities.formatDate报错问题
你遇到的报错是因为SpreadsheetApp.getActive()返回的是当前电子表格对象(不是Date类型),而Utilities.formatDate的第一个参数必须是Date对象,参数类型不匹配导致报错。
根据需求分两种解决方式:
- 如果要获取当前系统时间:
const DATE = new Date(); const FormattedDATE = Utilities.formatDate(DATE, "GMT", "EEEEE, dd MMMM yyyy");
- 如果要读取电子表格中某个单元格的日期值(以A1单元格为例):
const activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // 获取A1单元格的日期值(确保该单元格是日期格式) const DATE = activeSheet.getRange("A1").getValue(); const FormattedDATE = Utilities.formatDate(DATE, "GMT", "EEEEE, dd MMMM yyyy");
内容的提问来源于stack exchange,提问作者rohanrg
相关产品推荐
相关产品推荐

