如何在Google应用程序脚本中将时间戳“newDate()”格式化为新加坡时区

我在 google apps 脚本中有一个代码,当满足某些条件时打印时间戳。

我在 google apps 脚本中有一个代码,当满足某些条件时打印时间戳。

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中,但似乎没有此功能的参数。我不确定是否可以实现新加坡时区,如果没有,那么至少基于纽约时区?

2

说明:

您应该使用Utilities.formatDate(date, timeZone, format)方法并指定Singapore的时区。

这里是所有timezone IDs的列表,您可以用于您的目的,您的情况下的 ID 将是Asia/Singapore

因此,这将为您提供新加坡的 corrent 格式和日期时间:

Utilities.formatDate(new Date(), 'Asia/Singapore', 'yyyy-MM-dd HH:mm:ss');

鉴于新加坡的时区是T+8,您可以直接使用它:

const dt = Utilities.formatDate(new Date(), 'T+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('');
    }
  }
}

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(505)
在纯函数语言中 是否有一种算法来获取反函数(self inverse function)
上一篇
玩Gomoku的好AI策略是什么
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(80条)