从 Apps 脚本 V8 和旧版中的 google sheet 检索到不同的日期值
Different date value retrieved from google sheet in Apps Script V8 and Legacy
我有这 4 行非常简单的代码来从 Google Apps 脚本中检索 google sheet 中的持续时间值。 sheet 是空白的,并且具有此测试的唯一值。
function myFunction() {
var my_ss = SpreadsheetApp.getActiveSpreadsheet();
var my_sh = my_ss.getSheetByName("test");
var my_value = my_sh.getRange("A1").getValue();
console.log(my_value);
}
当我在新的 运行time V8 中 运行 这个时,我得到了 5 分钟的良好持续时间(格林威治标准时间不好,但我不使用这个)。但是由于 V8 上的当前错误,我们无法使用控制台开发数组和对象,我将脚本降级为 Apps script Legacy,当我执行完全相同的代码时(我的意思是我除了降级环境与 运行 菜单),然后我得到了好的 GMT 但错误的持续时间!我得到了 55 分 39 秒而不是 5 分钟!
我检查了应用程序脚本 V8、应用程序脚本遗留和 google sheet 中的时区,每个地方都一样,“GMT+01:00 Paris”。
更奇怪的是:这个测试实际上是从 2019 年 8 月创建的原始文件的副本执行的。在原始文件中,我得到了相反的行为。我在应用程序脚本遗留方面获得了很好的价值,但在 运行time V8 中我获得了不同的价值(我得到了 23:14:21 而不是 00:05:00)。
还有其他人遇到过这种行为吗?您知道如何在没有这些问题的情况下 运行 应用程序在新文件上编写遗留脚本吗?谢谢。
作为解决方法,您可以使用 getDisplayValue() 代替:
var my_value = my_sh.getRange("A1").getDisplayValue();
然后,您可以根据这个值构造一个您喜欢的日期对象。
所以,我注意到只有在我们升级到 V8 之前创建的文件(反之亦然)的情况下,我们才会遇到这个问题。因此,为了避免这种情况,如果我有一个旧文件,我想将应用程序脚本升级到 V8,我先复制该文件,然后复制到新文件中(V8 已经存在时的最新文件),那么我就不会遇到问题...
我有这 4 行非常简单的代码来从 Google Apps 脚本中检索 google sheet 中的持续时间值。 sheet 是空白的,并且具有此测试的唯一值。
function myFunction() {
var my_ss = SpreadsheetApp.getActiveSpreadsheet();
var my_sh = my_ss.getSheetByName("test");
var my_value = my_sh.getRange("A1").getValue();
console.log(my_value);
}
当我在新的 运行time V8 中 运行 这个时,我得到了 5 分钟的良好持续时间(格林威治标准时间不好,但我不使用这个)。但是由于 V8 上的当前错误,我们无法使用控制台开发数组和对象,我将脚本降级为 Apps script Legacy,当我执行完全相同的代码时(我的意思是我除了降级环境与 运行 菜单),然后我得到了好的 GMT 但错误的持续时间!我得到了 55 分 39 秒而不是 5 分钟! 我检查了应用程序脚本 V8、应用程序脚本遗留和 google sheet 中的时区,每个地方都一样,“GMT+01:00 Paris”。
更奇怪的是:这个测试实际上是从 2019 年 8 月创建的原始文件的副本执行的。在原始文件中,我得到了相反的行为。我在应用程序脚本遗留方面获得了很好的价值,但在 运行time V8 中我获得了不同的价值(我得到了 23:14:21 而不是 00:05:00)。
还有其他人遇到过这种行为吗?您知道如何在没有这些问题的情况下 运行 应用程序在新文件上编写遗留脚本吗?谢谢。
作为解决方法,您可以使用 getDisplayValue() 代替:
var my_value = my_sh.getRange("A1").getDisplayValue();
然后,您可以根据这个值构造一个您喜欢的日期对象。
所以,我注意到只有在我们升级到 V8 之前创建的文件(反之亦然)的情况下,我们才会遇到这个问题。因此,为了避免这种情况,如果我有一个旧文件,我想将应用程序脚本升级到 V8,我先复制该文件,然后复制到新文件中(V8 已经存在时的最新文件),那么我就不会遇到问题...