Существует официальный документированный способ получения информации о часовом поясе в дополнениях Gmail. Добавьте следующую область в файл манифеста:
"oauthScopes":["https://www.googleapis.com/auth/script.locale", ....]
Установите для свойства 'gmail.userLocaleFromApp' значение 'true':
"gmail": {"useLocaleFromApp": true}
Установите свойство "onTriggerFunction" для любой функции, которую вы используете для запуска надстройки. Приведенный ниже код отображает карту с информацией о часовом поясе для пользователя, запускающего надстройку.
function loadAddon(e){
var accessToken = e.messageMetadata.accessToken;
GmailApp.setCurrentMessageAccessToken(accessToken);
var userLocale = e.userLocale;
var offset = e.userTimezone.offSet;
var timezoneId = e.userTimezone.id;
var message ="User locale: " + userLocale +
"\nUTC offset: " + offset +
" \nTimezone Id: " + timezoneId;
var card = CardService.newCardBuilder()
.setHeader(CardService.newCardHeader()
.setTitle("User timezone info"))
.addSection(CardService.newCardSection()
.setHeader(Session.getActiveUser().getEmail())
.addWidget(CardService.newTextParagraph()
.setText(message)))
.build();
return [card];
}
UPDATE
Кажется, в документации есть ошибка, на которую указывают некоторые редакторы:
https://developers.google.com/gmail/add-ons/how-tos/access-user-locale
Предполагается, что смещение UTC будет e.userTimezone.offset, но на самом деле это e.userTimezone.offSet.