В Google скрипт приложений функция formatdate через зону пользователя время вместо GMT

у меня есть строка, которая устанавливает текущую дату и время в ячейку:

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

тогда у меня есть строка, которая создает форматированную дату на основе значения этой ячейки:

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

результирующее addedTime, похоже, находится в часовом поясе 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 ответов


вы можете напрямую получить часовой пояс электронной таблицы следующим образом:

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

посмотреть док

но Google Apps Script использует эти форматы, если вы хотите выбрать его самостоятельно:

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