【问题标题】:Trouble with date formats in Google Sheets scriptingGoogle 表格脚本中的日期格式问题
【发布时间】: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


    【解决方案1】:

    试试这个:

    var dts=sheet.getRange(2, 35).getDisplayValue();       
    var t=dts.split('/');
    var date=new Date(t[2],t[0]-1,t[1])
    

    由 Maldoror 提供:

    var date = sheet.getRange(2, 35).getDisplayValue(); 
    var regex = new RegExp("[0-9]*\/[0-9]*\/*\/[0-9]*"); 
    var cleanDate = regex.exec(date); 
    var t=cleanDate[0].split('/'); 
    var dateConv=new Date(t[2],t[1]-1,t[0]); 
    sheet.getRange(11, 1, lastrow-10).setValue(dateConv);
    

    【讨论】:

    • 感谢您的回答!这段特殊的代码对我不起作用,但你让我知道该怎么做。我调整了您的答案,这对我有用: var date = sheet.getRange(2, 35).getDisplayValue(); var regex = new RegExp("[0-9]*\/[0-9]*\/*\/[0-9]*"); var cleanDate = regex.exec(date); var t=cleanDate[0].split('/'); var dateConv=new Date(t[2],t[1]-1,t[0]); sheet.getRange(11, 1, lastrow-10).setValue(dateConv);再次感谢。
    【解决方案2】:

    问题

    我有没有办法强制在每个电子表格上粘贴此日期的特定范围仅存储文字字符串?

    是的,有。

    sheet.getRange(11, 1, lastrow-10).setValue("'" + cleanDate);
    

    解释

    在 Google 表格中,防止将单元格值强制视为 TEXT(字符串)的一种方法是在前面加上撇号

    相关

    【讨论】:

    • 我最终使用了另一条评论中概述的方法,但这也是非常有用的信息。谢谢!
    猜你喜欢
    • 2015-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-09
    • 2021-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多