У меня есть строка, которая устанавливает текущую дату и время в клетке:приложение Google Script 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.
Обновление: 'Session.getScriptTimeZone()' также работал для моих нужд. https://developers.google.com/apps-script/reference/base/session – mike
@mike: Одна из потенциальных проблем с использованием 'Session.getScriptTimeZone()' заключается в том, что вы развертываете скрипт в часовых поясах. Ваш конечный пользователь в другом tz будет иметь временные метки, синхронизированные с tz скрипта, а не tz таблицы. –