我有一个Google表单来收集离开组织的人员的信息。其中一个问题是'他们离开的日期和时间是什么?响应的格式为 dd / mm / yyyy,hh:mm 。因此,典型的回复将是 24/04/2015 17:00:00 ,这是我在表单提交时在表单回复1工作表中看到的内容。
我需要添加星期几并将信息复制到电子表格中的另一个工作表中,因此我使用
var leaveDate = inputSheet.getRange("G" + lastRow).getValue();
var leaveDateTime = Utilities.formatDate(leaveDate, "GMT", "EEE dd-MM-yyyy hh:mm:ss");
我看到的问题是,当我粘贴值时,时间会发生变化,粘贴的内容是
Fri 24-04-2015 04:00:00
任何人都可以解释为什么会这样,以及我可以做些什么来解决它?
由于
答案 0 :(得分:0)
尝试:
...
// var leaveDateTime = Utilities.formatDate(leaveDate, "GMT", "EEE dd-MM-yyyy hh:mm:ss");
var leaveDateTime = Utilities.formatDate(leaveDate, "GMT", "EEE dd-MM-yyyy HH:mm:ss");
...
<强>更新强>
答案 1 :(得分:0)
Apps脚本将日期类型转换为脚本编辑器中设置的时区。在脚本编辑器中,您需要设置时区,即使您已在电子表格中设置了时区。
将时区设置为您当地的时区。
确保电子表格中的时区以及脚本编辑器中的时区匹配。
如果您在多个时区中有多个电子表格编辑器,而其他用户已将时间设置为当地时间,那么显然,他们的时间和时间不会相同。如果有人离开该组织在世界的另一端,他们的时间下午4点,他们没有在你的时间下午4点离开组织。你可以假设,如果电子表格在下午4点说明,它是他们的当地时间,并转换时间。在这种情况下,您需要知道每次输入的时区,然后根据需要进行调整。
答案 2 :(得分:0)
感谢@ sandy-good和@wchiquito将我指向了正确的方向。有2个问题。第一个问题是使用hh而不是HH。第二个问题是我们目前正处于GMT + 1,并将持续到10月底,此时我们将回到GMT!由于我不想编写代码,我将通过删除日来简化它,这意味着我不必重新格式化日期。