Datetime 如何格式化时间戳';新日期();谷歌应用程序脚本中的新加坡时区?
我在GoogleApps脚本中有一个代码,在满足某些条件时打印时间戳。代码如下所示:Datetime 如何格式化时间戳';新日期();谷歌应用程序脚本中的新加坡时区?,datetime,google-apps-script,google-sheets,timezone,Datetime,Google Apps Script,Google Sheets,Timezone,我在GoogleApps脚本中有一个代码,在满足某些条件时打印时间戳。代码如下所示: function onEdit(e){ if (e.range.columnStart == 16 && e.range.rowStart >= 12) { if (e.value == 'Update' || e.value == 'Transmit') { e.range.offset(0, 1).setValue(new Date()).setNumberFo
function onEdit(e){
if (e.range.columnStart == 16 && e.range.rowStart >= 12) {
if (e.value == 'Update' || e.value == 'Transmit') {
e.range.offset(0, 1).setValue(new Date()).setNumberFormat("yyyy-MM-dd HH:mm:ss");
} else {
e.range.offset(0, 1).setValue('');
}
} else if (e.range.columnStart == 14 && e.range.rowStart >= 20) {
if (e.value == 'Transmit') {
e.range.offset(0, 1).setValue(new Date()).setNumberFormat("yyyy-MM-dd HH:mm:ss");
} else {
e.range.offset(0, 1).setValue('');
}
}
}
请注意,当我使用谷歌表单时,它是基于新加坡时区的,但我认为来自不同时区的其他人将与我不同
我想要实现的目标是为这些google工作表的所有用户(来自不同国家和不同时区)确定时区(基于新加坡时区),而不管他们在google工作表中的时区设置如何。我试图将其包含在setNumberFormat
中,但似乎此函数没有参数。我不确定是否可以实现新加坡时区,如果不能,至少可以基于纽约时区(因为纽约更常见?)。解释:
您应该使用该方法并指定新加坡
的时区
这是一个列表,列出了所有您可以用于您的目的,您的身份证将是Asia/Singapore
因此,这将为您提供新加坡的相应格式和日期时间:
Utilities.formatDate(new Date(), 'Asia/Singapore', 'yyyy-MM-dd HH:mm:ss');
或鉴于新加坡的时区为GMT+8
,您可以直接使用:
const dt = Utilities.formatDate(new Date(), 'GMT+8', 'yyyy-MM-dd HH:mm:ss');
解决方案:
function onEdit(e){
const dt = Utilities.formatDate(new Date(), 'Asia/Singapore', 'yyyy-MM-dd HH:mm:ss');
if (e.range.columnStart == 16 && e.range.rowStart >= 12) {
if (e.value == 'Update' || e.value == 'Transmit') {
e.range.offset(0, 1).setValue(dt);
} else {
e.range.offset(0, 1).setValue('');
}
} else if (e.range.columnStart == 14 && e.range.rowStart >= 20) {
if (e.value == 'Transmit') {
e.range.offset(0, 1).setValue(dt);
} else {
e.range.offset(0, 1).setValue('');
}
}
}