Google Apps Script преобразование строк в дату
У меня возникли проблемы с преобразованием строки в объект даты в приложениях google script.
Мои даты представлены в следующем формате: от стороннего API:
2013-01-17T17:34:50.507
Я пытаюсь преобразовать это в объект Date:
return Date(stringDate);
И это возвращается:
Thu Jan 01 01:00:00 GMT+01:00 1970
Может кто-нибудь сказать мне, что я делаю неправильно, и как решить эту проблему?
Большое спасибо
Ответы
Ответ 1
Не похоже, что объект Date знает, как обрабатывать эту дату. Дата находится в формате ISO 8601. Javascript может обрабатывать даты, если им предоставляется информация о часовом поясе.
Вам нужно будет провести некоторое тестирование, но если эти даты даны вам в UTC, просто добавьте Z
в конец строки даты, прежде чем вы вызовете new Date()
.
Изменить: объект Date Script Date не может обрабатывать часовой пояс, отличный от UTC, при анализе даты. Я открыл для него проблему.
Ответ 2
С moment.js, так легко, как это разобрать любой из ISO 8601.
var date = Moment.moment("2013-01-17T17:34:50.507").toDate();
Вы можете использовать moment.js для синтаксического анализа произвольной строки даты.
Чтобы использовать moment.js в GAS, вам просто нужно добавить его в редактор script.
Откройте script в редакторе GAS script и перейдите в раздел "Ресурсы", затем "Библиотеки...", затем введите этот ключ проекта MHMchiX6c1bwSqGM1PZiW_PxhMjh3Sh48
и нажмите "Добавить". Выберите версию из раскрывающегося списка, затем нажмите "Сохранить". Теперь вы готовы использовать moment.js в GAS.
moment.js может использоваться для анализа строки даты, создания форматированной строки даты и многих других манипуляций с датами. Спасибо автору!
Вы можете найти документацию moment.js здесь.
Ответ 3
Он не работает в GScript, по крайней мере, для меня в то время, когда я его пишу.
Этот пост служит рабочей альтернативой: Как форматировать эту строку даты, чтобы ее распознавали скрипты Google?