Google表格 时间戳脚本格式:带有毫秒的时间和不带年份的日期
问题描述
在我的Google表格中,我正在使用一个脚本,它可以从下拉列表选择的时间和日期中获取时间和日期,并将其放入D列到E列。
我希望时间的格式带有毫秒,日期不带年份。
另外,如果时间为单个数字(比如早上8点),我希望在数字前面有一个前导零。
解决方案
根据您提供的示例输出情况,您可以使用Utilities.formatDate
进行修改,如下所示:
修改后的脚本1:
在这种情况下,如果您希望将值作为字符串值放入,您可以修改TIMESTAMP
如下:
function TIMESTAMP() {
return Utilities.formatDate(new Date(), Session.getScriptTimeZone(), 'HH:mm:ss:SSS" - "dd/MM');
}
修改后的脚本2:
如果您想将值作为日期对象放置,可以将onEdit
修改如下:我认为这可能是与TheMaster的评论相同的方向。
function onEdit(e) {
const excludeSheetNames = ["START", "MASTER"]; // Please set exclude sheet names.
const { range } = e;
const sheet = range.getSheet();
if (excludeSheetNames.includes(sheet.getSheetName()) || range.columnStart != 4 || range.rowStart == 1) return;
range.offset(0, 1).setNumberFormat('HH:mm:ss:SSS" - "dd/MM').setValue(new Date());
if (e.value != "TRUE") return;
e.source.getActiveSheet().getRange(e.range.rowStart, e.range.columnStart + 1).setValue(new Date()).setNumberFormat('HH:MM:SS - dd/MM ');
}
- 在这个修改中,
TIMESTAMP
没有被使用。数字格式被改变并且日期对象被放入单元格中。