【问题标题】:Google Apps Script - Using replaceText to convert date formatGoogle Apps 脚本 - 使用 replaceText 转换日期格式
【发布时间】:2013-12-20 18:32:24
【问题描述】:

我收到了一个奇数日期格式 dd.mm.yyy 的批处理报告,我希望能够自动将它们全部转换为谷歌理解的日期,例如 mm/dd/yyyy。任何帮助都是极好的。我是正则表达式的 n00b。

function myFunction() {
  var doc = DocumentApp.getActiveDocument();
  var text = doc.editAsText();

 // Change up the date format
 text.replaceText("c?c.c?c.cccc", "/");
}

【问题讨论】:

    标签: javascript regex google-apps-script google-sheets


    【解决方案1】:

    您可以根据分隔符拆分日期,然后将它们按您想要的方式重新组合在一起,如下所示:

    function myFunction() {
      text = '12.03.012'
      textArray = text.split('.')
      text = textArray[0]+'/'+textArray[1]+'/2'+textArray[2]
      Logger.log(text)
    }
    

    日志输出显示: 12/03/2012

    【讨论】:

    • 这样就好了。但这仅适用于恰好是“12.03.012”的日期吗?我认为问题的一部分是工作表不知道它的日期,因为第一个数字是 DD 并且它不期望一个大于 12 的数字。
    • 等等..这是一个愚蠢的问题。我可以乱序添加单元格来解决这个问题.. 星期五快乐
    • 这种答案假设您的问题存在一定的一致性。如果日期始终采用“dd.mm.yyy”形式,那么是的,这对您有用。如果它是像'dd.mm.yyyy'这样的轻微变化,那么你可以进行一些修改以适应它,但如果它具有不同的形式(例如,一个有mm.dd.yyy,但其他的是dd.mm.yyyy,其他的是.. .) 那么你将很难找到它。
    • 正是 :) 星期五快乐,还有其他事情要调查:w3schools.com/jsref/jsref_parse.asp(如果你喜欢,别忘了接受答案;)
    • 看看这个:doc reference.你最终会有一个地方可以说values[row][col].split('.')
    【解决方案2】:

    我会为此使用momentjs。这样,您可以直接转到 javascript 日期对象,而不必乱用 regExps。您可以使用他们的parsing string-format api 将您的格式转换为标准格式。

    var legitDate = moment(oddlyFormatedDate, "MM-DD-YYYY"); // use MM DD etc to describe your odd date format.
    

    【讨论】:

    • 这真的很酷。我需要做一些特别的事情才能让它在谷歌脚本中工作吗?
    • 我不知道,我从来没有做过谷歌应用脚​​本,但你可能只链接到 moment.js
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多