Google应用脚本 - 复制后形成输入时间更改

时间:2015-04-17 14:55:32

标签: google-apps-script google-sheets google-form

我有一个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

任何人都可以解释为什么会这样,以及我可以做些什么来解决它?

由于

3 个答案:

答案 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");
...

<强>更新

enter image description here

答案 1 :(得分:0)

Apps脚本将日期类型转换为脚本编辑器中设置的时区。在脚本编辑器中,您需要设置时区,即使您已在电子表格中设置了时区。

Project Properties

将时区设置为您当地的时区。

Time Zone

确保电子表格中的时区以及脚本编辑器中的时区匹配。

如果您在多个时区中有多个电子表格编辑器,而其他用户已将时间设置为当地时间,那么显然,他们的时间和时间不会相同。如果有人离开该组织在世界的另一端,他们​​的时间下午4点,他们没有在你的时间下午4点离开组织。你可以假设,如果电子表格在下午4点说明,它是他们的当地时间,并转换时间。在这种情况下,您需要知道每次输入的时区,然后根据需要进行调整。

答案 2 :(得分:0)

感谢@ sandy-good和@wchiquito将我指向了正确的方向。有2个问题。第一个问题是使用hh而不是HH。第二个问题是我们目前正处于GMT + 1,并将持续到10月底,此时我们将回到GMT!由于我不想编写代码,我将通过删除日来简化它,这意味着我不必重新格式化日期。