Подтвердить что ты не робот

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

Может кто-нибудь сказать мне, что я делаю неправильно, и как решить эту проблему?

Большое спасибо

4b9b3361

Ответ 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 здесь.