【问题标题】:Date format conversion from "yyyy-mm-dd" to "dd/mm/yyyy" in pentaho using javascript使用javascript在pentaho中从“yyyy-mm-dd”到“dd/mm/yyyy”的日期格式转换
【发布时间】:2016-04-28 05:58:56
【问题描述】:

我有一个 csv 文件,其中日期字段的格式为“yyyy-mm-dd”,我希望使用 javascript 将其转换为“dd/mm/yyyy”。这是它从 reference 中发现的 javascript

"could not apply the given format yyyy/mm/dd on the string for 2015-02-04 :Format.parseObject(String) failed(script#3)"

这是我使用的javascript代码

var dateObj = str2date(Date_of_joining, "yyyy/mm/dd");
 var newDate = date2str(dateObj, "dd/MM/yyyy");

我什至尝试使用选择值步骤并将元数据更改为日期并将格式指定为“dd/MM/yyyy”但仍然无法正常工作。我该如何解决这个问题

【问题讨论】:

  • 你可以重构 dateTime 字符串
  • 为什么要在javascript中做呢?只需在选择值步骤中指定正确的掩码即可。

标签: javascript pentaho kettle date-conversion pentaho-spoon


【解决方案1】:

您正在解析的日期没有使用斜杠,但您在解析时定义了斜杠。将斜线改为破折号:

var dateObj = str2date(Date_of_joining, "yyyy-mm-dd");
var newDate = date2str(dateObj, "dd/MM/yyyy");

【讨论】:

    【解决方案2】:
    function convertLinuxDate(linux_date) {
        //linux_date = "2001-01-02"
        var arrDate = linux_date.split("-");
        return arrDate[1] + "/" +arrDate[2] + "/" + arrDate[0];
    }
    //returns 01/02/2001
    

    【讨论】:

      【解决方案3】:

      我们开始吧:

      尝试像这样重构 DateTime 字符串:

      var dateObj = new Date(Date_of_joining);
      var newDate = new Date(dateObj );
      var formattedString = [newDate.Date(),newDate.Month()+1, newDate.getFullYear()].join("/");
      alert(formattedString );
      

      希望对你有帮助;)

      【讨论】:

      • 它抛出了一个错误:“无法在对象的日期中找到函数,因此 2016 年 4 月 28 日 11:39:11 GMT +0530(IST)。”
      • @Deepesh 我知道错误在哪里,抱歉我忘了写这个:Date_of_joining
      • 仍然报错:“TypeError: Cannot find function Date in object Invalid Date(Script#3)”
      猜你喜欢
      • 2016-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-31
      • 2012-05-05
      相关资源
      最近更新 更多