var sheetdate = activeSheet.getRange(x, y).getValue()
Я использовал эту строку, чтобы прочитать дату из таблиц Google. Дата в листах - 01.02.2021. Но Sheetdate возвращает значение Вс, 31 января, 13:30:00 GMT-05: 00 2021. Фактический выход должен быть 1 февраля, понедельник, 17:35:00 GMT 05:30.
getRange.getValue возвращает неверную дату из листов Google
comment
Кажется, проблема с часовым поясом. Вы пытались преобразовать значение (возвращенное как часовой пояс по Гринвичу) в свой часовой пояс)?
- person Sourcerer   schedule 01.02.2021
Ответы (1)
Это проблема с часовым поясом, как упоминал Sourcerer.
Есть много возможных ответов на этот вопрос, но я предпочитаю этот, форматирование даты с использованием Utilities
, так как вы можете контролировать свой вывод:
function myFunction() {
var sheet = SpreadsheetApp.getActiveSheet();
date = sheet.getRange(1, 1).getValue()
Logger.log(date);
Logger.log(SpreadsheetApp.getActive().getSpreadsheetTimeZone());
Logger.log(Utilities.formatDate(date, SpreadsheetApp.getActive().getSpreadsheetTimeZone(), "E MMM dd HH:mm:ss z yyyy"));
}
Для форматирования тот, который я использовал выше "E MMM dd HH:mm:ss z yyyy"
, пытается имитировать вывод даты по умолчанию. См. Ссылку ниже и не стесняйтесь изменять в зависимости от того, что вам нужно вывести на дату.
Ссылка:
person
NaziA
schedule
01.02.2021