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

问题描述 投票:0回答:1

我正在解析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"); 

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

google-apps-script
1个回答
0
投票

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

.setValue(Utilities.formatDate(new Date(), "GMT-6:30", "MMM-dd-yyyy hh:mm"));
© www.soinside.com 2019 - 2024. All rights reserved.