如何将Google Apps Script中日期格式改为07/09/2023?
解决方案
要将邮件中的日期格式从默认的Thu Sep 07 2023 05:00:00 GMT+0700 (Indochina Time)改为07/09/2023(日/月/年),你可以借助Google Apps Script的Utilities.formatDate()方法对日期进行格式化,具体修改步骤如下:
添加日期格式化逻辑:在获取
currentExpire日期对象后,用Utilities.formatDate()将其转换为指定格式的字符串:var currentExpire = ss.getRange(i, 8).getValue(); // 格式化日期为dd/MM/yyyy格式 var formattedExpire = Utilities.formatDate(currentExpire, Session.getScriptTimeZone(), "dd/MM/yyyy");Session.getScriptTimeZone()会自动使用脚本的时区,你也可以手动指定目标时区(比如"Asia/Bangkok"对应Indochina Time)。- 格式化模板
"dd/MM/yyyy"中,dd代表两位日期,MM代表两位月份,yyyy代表四位年份。
替换模板中的日期变量:在构建邮件内容时,用格式化后的
formattedExpire代替原始的currentExpire:var messageBody = Mailtemplate.replace("{text}",currentText) .replace("{member}",currentMember) .replace("{expire}",formattedExpire);
修改后的完整代码
function sentEmails() { var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("AUTO").activate(); var lr = ss.getLastRow(); var Mailtemplate = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Mailtemplate").getRange(1,1).getValue(); for (var i = 2;i<=lr;i++){ var currentMember = ss.getRange(i, 6).getValue(); var currentExpire = ss.getRange(i, 8).getValue(); // 新增日期格式化代码 var formattedExpire = Utilities.formatDate(currentExpire, Session.getScriptTimeZone(), "dd/MM/yyyy"); var subjectLine = "Your membership " + currentSubjectSuffix; var messageBody = Mailtemplate.replace("{text}",currentText) .replace("{member}",currentMember) .replace("{expire}",formattedExpire); Logger.log(Mailtemplate); // 此处需补充MailApp.sendEmail或GmailApp.sendEmail的发送逻辑,原代码未包含 } }
额外提示
- 若脚本时区与目标日期时区不符,可将
Session.getScriptTimeZone()替换为具体时区字符串,例如"Asia/Ho_Chi_Minh"。 - 确保
currentExpire对应的单元格值是有效的日期类型,而非纯文本,否则Utilities.formatDate()会触发错误。
内容的提问来源于stack exchange,提问作者The Denster
相关产品推荐
相关产品推荐

