谷歌应用程序脚本日期解析错误

时间:2020-01-24 08:47:19

标签: google-apps-script

var ss = SpreadsheetApp.getActiveSpreadsheet();
var dataa = ss.getSheetByName("123").getRange("C1").getValue();
// C1 => 18:34:00.000
Logger.log(Utilities.formatDate(dataa, "GMT", "HH:mm"));
//Log =>[20-01-24 17:31:02:475 JST] 10:06

我带了电子表格的日期。

它表示为Google应用脚本日期。

但是,结果却不同。

为什么这样?

enter image description here

1 个答案:

答案 0 :(得分:2)

您面临的问题是.getValue(),它将把单元格中的数据解析为Google认为的内容。要完全按照电子表格中的值获取值,请使用.getDisplayValue()

假定C列中的值始终采用相同的格式(HH:mm:ss),则可以简单地使用冒号作为分隔符来拆分值,然后将这些值与控件进行比较。 (看看各种Date方法与hoursminutes等进行比较)

var range = ss.getSheetByName("Sheet1").getRange("C1"); // 18:34:00
var displayValue = range.getDisplayValue();
var displayValueParts = displayValue.split(":");
var hour = displayValueParts[0];
var minutes = displayValueParts[1];
var seconds = displayValueParts[2]

请注意,Google仅使用.getValue()就能将C1中的值解释为日期。

var range = ss.getSheetByName("Sheet1").getRange("C1"); // 18:34:00
var value = range.getValue();
Logger.log(value); // Sat Dec 30 11:51:56 GMT+00:00 1899