使用 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 - '今天未在对象中定义'