Google Apps脚本格式日期使用用户的时区而非GMT

时间:2013-09-03 16:14:17

标签: javascript time google-apps-script timezone timezone-offset

我有一行设置单元格中的当前日期和时间:

sheet.getRange(1,1).setValue(new Date());

然后我有一行根据该单元格的值创建格式化日期:

var addedDate = sheet.getRange(1,1).getValue();
var addedTime = Utilities.formatDate(addedDate, "GMT", "hh:mm a");

结果addTime似乎在GMT时区,我需要它在用户的时区。它通常是美国东部时间(-0500),但如果我只是从那个时间减去5个小时,那么不考虑夏令时(-0400)。

我在这里查看了formatDate的文档:https://developers.google.com/apps-script/reference/utilities/utilities#formatDate(Date,String,String)

链接到官方Java SimpleDateFormat类文档:http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

...但我找不到有效时区列表来替换GMT。

1 个答案:

答案 0 :(得分:21)

您可以直接获取电子表格时区,如下所示:

  var addedDate = sheet.getRange(1,1).getValue();
  var addedTime = Utilities.formatDate(addedDate, SpreadsheetApp.getActive().getSpreadsheetTimeZone(), "hh:mm a");

请参阅doc here

但如果您想自己选择,Google Apps脚本会使用这些格式:

http://joda-time.sourceforge.net/timezones.html