使用javascripting处理Pentaho中的日期格式

时间:2015-05-21 07:25:18

标签: javascript pentaho

我的输入excel表包含两个不同类型值的字段“date”,如下所示

2015-03-02 11:06:35

3/2/2015  4:03:53 AM

我正在将它们视为“字符串”并执行逻辑

var temp =  date.getString();
temp = str2date(temp,"dd.MM.yyyy HH:mm:ss");

我收到以下错误

*Could not apply the given format dd.MM.yyyy HH:mm:ss on the string for  2015-03-02 11:06:35  : Format.parseObject(String) failed*

我尝试将它们视为“日期”,但我收到了以下错误

Unparseable date: " 2015-03-02 11:06:35 "

我们如何处理此错误?

3 个答案:

答案 0 :(得分:0)

来自文档的一些想法。 http://wiki.pentaho.com/display/EAI/JavaScript+Values

首先尝试调用getDate(),它应该是与相关单元格相关联的函数。

如果这不起作用,请尝试在excel中调用getNumber(),所有日期都以浮点表示。整数部分是1970年1月1日以来的天数,分数部分是一天中的百分比。我敢肯定,如果你环顾四周这个功能有一个js包装。

另一个想法是确定所有数字格式字符串。圈住他们捕捉错误。不抛出错误的那个应该是正确的。或者你可以写一个小的正则表达式模式来更好地检查出来的日期。

答案 1 :(得分:0)

最后,我得到了结果。我将逐步解释,请仔细按照步骤进行。

步骤1:数据网格=>我创建了一个名为fail_date的字段,即String数据类型。

enter image description here

步骤2:修改的Java脚本值=>我写了一些像这样的代码。请按照屏幕截图。

enter image description here

第3步:选择值=>这里我转换了日期数据类型。

enter image description here

步骤4:修改的Java脚本值2 =>这里我也写了一个代码。请按照屏幕截图。

enter image description here

第5步:选择值=>最后,我转换了需要数据格式。其中correct_date字段是您需要的输出。

enter image description here

步骤6:最终输出屏幕将是这样的。

enter image description here

步骤7:屏幕截图下方显示整个转换屏幕。

enter image description here

希望这有帮助。

答案 2 :(得分:0)

您可以使用图书馆吗?我使用了xdate非常好。它解析这两个日期字符串

var xdate = require('xdate');
xdate('2015-03-02 11:06:35').toDate(); // returns a js date object
xdate('3/2/2015  4:03:53 AM').toDate(); // returns another js date object.