所以我正在编写一个脚本,需要从 Google 电子表格中读取时间值并使用它。我尝试运行测试函数以确保提取的值正确,但这些值似乎与电子表格中反射(reflect)的值不同。
输入
function testTime(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("TimeSheet");
var time = sheet.getRange(2,1).getValue();
//value on the sheet is 10:00:00 AM
Logger.log(time);
Logger.log(time.toTimeString());
}
输出
Sat Dec 30 09:30:59 GMT+07:36 1899
09:54:17 GMT+0800 (HKT)
时间应该是 10:00:00 但显示为 09:54:17,这是第一个奇怪的错误。
其次,我是否可以提取实际值“10:00:00 AM”,或者以更简单的格式“10:00”提取更好的值?
编辑:
我找到了解决第二个问题并以所需格式获取时间的方法。然而,与时间还是有一些奇怪的互动。我添加了 2 行及其各自的输出
所有记录器行
Logger.log(Utilities.formatDate(time, "GMT+07:37", "HH:mm"));
Logger.log(Utilities.formatDate(time, "GMT+08:00", "HH:mm"));
Logger.log(time);
Logger.log(time.toTimeString());
输出
10:00
10:23
Sat Dec 30 10:00:00 GMT+07:36 1899
10:23:18 GMT+0800 (HKT)
在电子表格设置下,
区域设置 = 美国
时区 = (GMT+08:00) 香港
最佳答案
如果您想要与电子表格中显示的值完全相同 细胞,使用
var time = sheet.getRange(2,1).getDisplayValue();
此外,您可以使用以下方法分解长日期/时间字符串
split(" ")
方法,然后以您想要的任何方式组合结果数组中的元素。
关于javascript - 在 Google 电子表格上花费时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39718668/