如何通过Google Scripts正确读取Google Sheet中的时间戳?
Google Scripts读取Sheet时间戳的错误修正
你的核心问题是没有正确调用方法——getValue和toString都是方法,必须加括号()才能执行获取结果,而不是直接引用方法本身。
错误代码的问题拆解
逐个看你原来的尝试:
var readbackStamp = debugSheet.getRange(1,2).getValue:这里拿到的是getValue函数的引用,不是单元格里的日期值var readbackStamp1 = debugSheet.getRange(1,2).getValue.toString:同样是引用了函数的toString方法,不是执行后得到的字符串var readbackStamp2 = debugSheet.getRange(1,2):获取的是Range单元格对象,不是单元格内的时间值var readbackStamp3 = new Date(debugSheet.getRange(1,2).getValue):因为没调用getValue(),传入的是函数对象,转成Date会得到无效时间var readbackStamp4 = new Date(debugSheet.getRange(1,2).getValue.toString):同样,两个方法都没加括号调用,传入的是方法本身,无法生成正确的Date对象
正确的读取方式
Google Sheets中存储的日期时间,用getValue()直接读取就会返回Date对象,和你写入的nowStamp类型完全一致。修正后的代码:
var nowStamp = new Date(); debugSheet.getRange(1,2).setValue(nowStamp); // 正确调用getValue()获取Date对象 var readbackStamp = debugSheet.getRange(1,2).getValue(); // 验证一致性:用getTime()比较时间戳数值(避免时区显示差异的干扰) console.log(nowStamp.getTime() === readbackStamp.getTime()); // 输出true表示一致
只要确保调用getValue()(加括号),就能直接拿到和写入时相同的Date对象,不需要额外转换。
内容的提问来源于stack exchange,提问作者arnschi
相关产品推荐
相关产品推荐

