转换没有时区的日期格式 - 谷歌应用脚本(Javascript),谷歌电子表格



我正在研究Google电子表格和LINE Message API(BOT(之间的集成,其中Google应用程序脚本是后端。

我从Google电子表格中获取日期格式单元格并发送到LINE机器人,但消息回复显示了不同的东西。 在谷歌电子表格的单元格中

1/5/2020

在谷歌应用脚本中,我首先对其进行了编码

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

但LINE消息,它默认发送包含时区的格式

周日 1月 05 2020 00:00:00 GMT+0700 (ICT(

所以我编码了它

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

这个是有效的,但是当单元格为空时它不起作用,我不知道为什么。所以有人请帮我解决这个问题。提前致谢

如果需要在日期转换不起作用时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;

如果单元格为空并且您想使用 Utilities.formatDate,我会这样做:

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

因此,如果单元格中没有值,只需分配默认值" ">

相关内容

最新更新