我有一行设置单元格中的当前日期和时间:
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。
答案 0 :(得分:21)
您可以直接获取电子表格时区,如下所示:
var addedDate = sheet.getRange(1,1).getValue();
var addedTime = Utilities.formatDate(addedDate, SpreadsheetApp.getActive().getSpreadsheetTimeZone(), "hh:mm a");
请参阅doc here
但如果您想自己选择,Google Apps脚本会使用这些格式: