В 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 использует эти форматы, если вы хотите выбрать его самостоятельно: