Преобразование формата даты без часового пояса - скрипт приложения Google (Javascript), таблица Google - PullRequest
0 голосов
/ 15 января 2020

Я работаю над интеграцией электронной таблицы Google и LINE Message API (BOT), где сценарий приложения Google является серверным.

Я получаю ячейку формата даты из электронной таблицы Google и отправляю ее боту LINE, но в ответном сообщении говорится о другом. в ячейке Google Spreadsheet

1/5/2020

В скрипте приложения Google я сначала закодировал его

var colb =  ss.getSheets()[0].getRange(i+3, 2).getValue();

но сообщение LINE отправляет формат включенного часового пояса по умолчанию

Вс 5 января 2020 00:00:00 по Гринвичу + 0700 (ICT)

Итак, я закодировал его

var colb =  Utilities.formatDate(ss.getSheets()[0].getRange(i+3, 2).getValue(), ss.getSpreadsheetTimeZone(), "dd/MM/YY");

Это работает, но не работает, когда ячейка пуста, и я понятия не имею, почему. Так что, пожалуйста, помогите мне с этим. Заранее благодарен

Ответы [ 2 ]

0 голосов
/ 16 января 2020

Если вам нужно, чтобы colb содержало исходное значение (включая пустое), когда преобразование даты не работает, вы можете сделать это:

var value = ss.getSheets()[0].getRange(i+3, 2).getValue();
var colb = (typeof value == "object" && value instanceof Date) ? Utilities.formatDate(value, ss.getSpreadsheetTimeZone(), "dd/MM/YY") : value;
0 голосов
/ 15 января 2020

Если ячейка пуста и вы хотите использовать Utilities.formatDate, я бы сделал так:

var colb =  " " || Utilities.formatDate(ss.getSheets()[0].getRange(i+3, 2).getValue(), ss.getSpreadsheetTimeZone(), "dd/MM/YY");

Поэтому, если в ячейке нет значения, просто присвойте значение по умолчанию ""

...