【发布时间】:2020-07-25 05:24:33
【问题描述】:
我正在编写一个简单的表格脚本,该脚本从文件夹中的电子表格中获取数据,对其进行重组并将所有内容合并到主电子表格中。不过,我在表格将看起来像日期的字符串存储为日期的方式上遇到了很多麻烦。
基本上,其中一个单元格的内容如下:“运行日期:02/06/2020”。所以我正在做一个 REGEX 操作来提取日期并将其粘贴到另一个单元格中。问题是,默认情况下,Sheets 将其解释为美国格式 (mm-dd-yyyy) 的日期,但日期应采用国际格式 (dd-mm-yyyy)。因此,当我执行此粘贴操作时,数据存储为错误的数字(43867 而不是 43984)。
这是相关的代码:
var date = sheet.getRange(2, 35).getDisplayValue();
var regex = new RegExp("[0-9]*\/[0-9]*\/*\/[0-9]*");
var cleanDate = regex.exec(date);
sheet.getRange(11, 1, lastrow-10).setValue(cleanDate);
我尝试了 setNumberFormat() 方法,但它并没有解决我的问题,因为它解释了错误的基础数字。有没有办法让我强制在每个电子表格上粘贴此日期的特定范围仅存储文字字符串?
我想到的另一个可能的解决方案是在 REGEX 操作之后以某种方式获取原始字符串并将其转换为正确的日期基础数字。例如。 “运行日期:02/06/2020”>“02/06/2020”>“43984”。这可能会更好,因为我以后不必处理文字字符串“02/06/2020”,但我不知道该怎么做。
谢谢。
【问题讨论】:
标签: google-apps-script google-sheets date-format