使用 javascripting 在 Pentaho 中更改日期格式

Posted

技术标签:

【中文标题】使用 javascripting 在 Pentaho 中更改日期格式【英文标题】:Changing date format in Pentaho using javascripting 【发布时间】:2015-05-07 12:20:26 【问题描述】:

我有一个输入 Excel 表,其中有一个字段“fail_date”。我想将格式更改为dd.MM.yyyy HH:mm:ss。我在下面显示的 javascript 中执行此操作。

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

但是当我运行时出现以下错误

2015/05/07 17:48:01 - 修改的 Java 脚本值 2 2 2.0 - 错误 (版本 4.4.0-stable, build 17588 from 2012-11-21 16.02.21 by buildguy) : 无法在字符串上应用给定的格式 dd.MM.yyyy 对于 Thu Jan 01 11:05:50 IST 1970:Format.parseObject(String) 失败 (脚本#5)

script#5 指向 str2date(temp,"dd.MM.yyyy HH:mm:ss"); 。请帮忙解决这个问题。

【问题讨论】:

getDate() in javascript Date 对象返回月份日期 [1-31]。看起来您传递的转换日期无效。您必须显示 temp 的值和函数 str2date 的主体以获得进一步的帮助。 Input excel 中的值为“1970/01/01 11:05:50.312” [数据类型为日期] 在 pentaho 中,该值以“temp”读取,值为“Thu Jan 01 11:05:50 IST 1970”。在 pentaho 中,str2date 是一个内置函数。用法:str2date("01.12.2006 23:23:01","dd.MM.yyyy HH:mm:ss"). 【参考方案1】:

变量 temp 被设置为日期类型对象,但是当您应用 str2date 函数时,该函数期望为 temp 作为字符串。

所以你的代码应该是这样的:

var temp = fail_date.getDate();
temp = date2str(temp,"dd.MM.yyyy HH:mm:ss");

现在记住 temp 是一个字符串类型

【讨论】:

另外,现在变量 temp 设置为字符串。 var temp = fail_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 04:00:31.000 : Format.parseObject(String)

以上是关于使用 javascripting 在 Pentaho 中更改日期格式的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 在HTML中使用 JavaScript

javascript 使用JavaScript在脚本中插入脚本

javascript - 使用另一个函数中的变量 javascript - '今天未在对象中定义'

javascript 使用

javascript 在JavaScript中使用“this”的不同方式

JavaScript 在Javascript中使用“typeof”运算符