You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Google Sheets脚本中使用SpreadsheetApp.prompt()显示缩写格式的日期

解决Google Sheets脚本中prompt日期缩写显示的问题

我来帮你搞定这个日期格式的问题!你看到的那个超长日期字符串,其实是JavaScript Date对象默认的toString()输出格式。要在SpreadsheetApp.prompt()里显示缩写日期,核心是用Google Apps Script自带的Utilities.formatDate()函数,把日期对象转换成你想要的简洁格式。

具体步骤和代码示例

  1. 获取或定义你的日期对象:不管这个日期是从单元格读取的,还是代码里生成的,只要它是标准的Date类型就行。
  2. Utilities.formatDate()格式化日期:这个函数需要三个参数:
    • 要格式化的Date对象
    • 时区(推荐用Session.getScriptTimeZone()获取脚本的默认时区,也可以手动指定比如"America/New_York"
    • 日期格式字符串(用占位符定义缩写样式)

比如,如果你想把日期显示成Mar 30, 2021这种样式,代码可以这么写:

// 假设你已经有了目标日期对象
let targetDate = new Date(); // 这里可以替换成你的实际日期,比如从单元格获取的日期

// 格式化日期为缩写格式
let abbreviatedDate = Utilities.formatDate(
  targetDate,
  Session.getScriptTimeZone(),
  "MMM dd, yyyy"
);

// 在prompt中显示格式化后的日期
SpreadsheetApp.getUi().prompt(
  "提示标题",
  `目标日期:${abbreviatedDate}`,
  SpreadsheetApp.getUi().ButtonSet.OK
);

常用的日期格式占位符

你可以根据需求调整格式字符串,常用的占位符包括:

  • MMM:月份缩写(比如Mar、Oct)
  • dd:两位数日期(比如05、30)
  • yyyy:四位数年份(比如2021)
  • yy:两位数年份(比如21)
  • HH:mm:24小时制的时间(比如06:29)

举几个不同缩写格式的例子:

  • "dd/MMM/yy"30/Mar/21
  • "MMM dd"Mar 30
  • "yyyy-MM-dd"2021-03-30

从单元格读取日期的场景

如果你的日期是从Google Sheets单元格里获取的,代码类似这样:

let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
let cellDate = sheet.getRange("A1").getValue(); // 确保单元格里的是日期类型

let formattedDate = Utilities.formatDate(
  cellDate,
  Session.getScriptTimeZone(),
  "MMM dd, yyyy"
);

SpreadsheetApp.getUi().prompt("单元格日期", formattedDate, SpreadsheetApp.getUi().ButtonSet.OK);

这样就能在prompt里显示干净的缩写日期啦!

内容的提问来源于stack exchange,提问作者Django Unchained

火山引擎 最新活动