Кто-то из часового пояса "Европа / Лондон" (UTC + 0) создал электронную таблицу.Они вводят дату «22 марта 2019 года» в одно из полей.Это представляет дату 3/22/2019 0:00 UTC+O
.
Я нахожусь в часовом поясе "America / Los_Angeles" (UTC-7).Когда я запускаю скрипт Google Apps и пытаюсь получить значение, оно оценивается следующим образом:
Thu Mar 21 17:00:00 GMT-07:00 2019
Это точно, поскольку 3/22/2019 0:00 UTC+O
== 3/21/2019 17:00 UTC-7
.
Проблема заключается в том, чтоЯ пытаюсь получить дату программно, я получу ее как 21 вместо 22.
Например, если я попытаюсь запустить:
cellRange.getValue().getDate() // returns 21 even though the sheet shows the date as 22
Это потому, что getDate()
возвращает значения «по местному времени».Время локального сценария - UTC-7, следовательно, оно возвращает 21.
Однако это вызывает диссонанс:
- Дата электронной таблицы: 22 (то есть значение, которое я вижу на листе)
- Программная дата: 21 (т. Е. Значение, возвращаемое
getDate()
выше)
Это проблематично, когда я пытаюсь использовать такую функцию, как joinDateAndTime_()
с "22 марта 2019 года" в качестве даты и 6 утра в качестве времени, например.Это приводит к тому, что вместо «22 марта 2019 6:00 UTC-7» создается дата «21 марта 2019 г. 6:00 UTC-7».
Какое здесь лучшее решение?