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

使用javascripting处理Pentaho中的日期格式,javascript,pentaho,Javascript,Pentaho,我的输入excel工作表有“日期”字段,有两种不同类型的值,如下所示 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

我的输入excel工作表有“日期”字段,有两种不同类型的值,如下所示

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 "
我试着把它们读作“日期”,但我得到了下面的错误

*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 "

我们如何处理这个错误?

来自文档的一些想法

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

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


另一个想法是确定所有numberformat字符串。在它们上面循环捕捉错误。不抛出错误的应该是正确的。或者您可以编写一个小的正则表达式模式,以便更好地检查即将出现的日期。

最后,我得到了结果。我将一步一步地解释,请仔细遵循步骤

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

第2步:修改Java脚本值=>我编写了一些类似的代码。请按照屏幕截图进行操作

步骤3:选择values=>这里我转换了日期数据类型

第4步:修改Java脚本值2=>这里我还编写了一个代码。请按照屏幕截图进行操作

第5步:选择值=>最后,我转换了require数据格式。这里正确的日期字段是您所需的输出

步骤6:最终输出屏幕如下所示

步骤7:下面的屏幕截图显示整个转换屏幕


希望这有帮助。

你能用图书馆吗。我用过它真的很好。它解析这两个日期字符串

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.

您好,我无法调用getDate(),因为第一个值[2015-03-02 11:06:35]是字符串。我无法使用getNumber(),原因与上述相同。当我传递带有此值的输入excel工作表时,我遇到一个异常情况。\u格式字符串:无法将字符串[2015/03/02 04:00:31.000]转换为使用格式[dd/MM/yyyy HH:MM:ss]的日期,例如:2015/03/02 01:00:31.000(excel工作表值即字符串数据类型)。在您可以转换为日期格式yyyy/MM/dd HH:MM:ss.SSS之后,可以转换为dd/MM/yyyy HH:MM:ss。(注意:每次转换都有不同的选择值步骤)。