如何在谷歌脚本中将文本作为日期插入单元格? (符合时区转换)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在谷歌脚本中将文本作为日期插入单元格? (符合时区转换)相关的知识,希望对你有一定的参考价值。

我正在解析CSV文件。一个字段是2016-01-20 17:40:37格式的文本字符串。它应该在工作表中显示时看起来像这样。脚本的时区为+9。电子表格的时区为+10。我该怎么做?

我可以得到:

tsheet=SpreadsheetApp.getActive().getSpreadsheetTimeZone()
tscript=Session.getScriptTimeZone()

我可以使用:

Utilities.formatDate(datetime, timezone, "yyyy-MM-dd'T'HH:mm:ss'Z'")

但我不明白该怎么做。

现在我的代码是:

date = "2016-01-20"                         //after regex parsing
time = "17:40:37"                           //after regex parsing
datetime = new Date(""+date + "T" + time+"Z")
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange('A2').setValue(datetime).setNumberFormat("dd/MM/yyyy hh:mm:ss");

单元格中的结果是:2016年1月21日3:40:37。

预计与输入相同(相同的时间和日期没有时区转换):2016-01-20 17:40:37,但在日期格式中能够在电子表格中对日期相关的计算进行排序/进行。

我只需要从外部源获取文本字符串并使其成为电子表格单元格中的日期(不考虑在设置中选择了哪个时区)。表示必须相同/同一天/同一小时。不一样的时代。

编辑:

看起来好像我用

 sheet.getRange('A2').setValue("2016-01-20 17:40:37").setNumberFormat("dd/MM/yyyy hh:mm:ss"); 

有用。这是正确的解决方案吗?

答案

尝试使用实用程序。我使用下面的代码行来打印单元格中的时间戳

.setValue(Utilities.formatDate(new Date(), "GMT-6:30", "MMM-dd-yyyy hh:mm"));

以上是关于如何在谷歌脚本中将文本作为日期插入单元格? (符合时区转换)的主要内容,如果未能解决你的问题,请参考以下文章

当我输入单元格时自动获取日期和时间,但在谷歌表格的单独列中

如何链接谷歌电子表格中的两个单元格是否可能?

如何在谷歌应用脚​​本中将段落 html 字符串转换为没有 html 标签的纯文本?

在谷歌文档中插入日期时间

在谷歌 appScript 中获取今天的日期

如何基于一个单元格等于另一个单元格在谷歌表格中应用条件格式