骡子 - 日期格式从m / dd / yy到yyyy-mm-dd

时间:2015-02-11 18:14:51

标签: date mule datamapper

想要将日期转换为上述所需格式。是否有可能在datamapper中编写一个groovy脚本?如果是的话,请举个例子。或者我可以引用另一个表达式或组件吗?

5 个答案:

答案 0 :(得分:4)

我认为最简单的方法就是编辑datamapper脚本并替换执行此日期映射的行:

output.date = date2str(str2date(input.date,"d/mm/yy"), "yyyy-mm-dd");

但相应地替换了输入和输出字段。

答案 1 :(得分:0)

以下是link,它解释了如何在java中执行此操作。你可以轻松地修改它。

这里是剧本

import java.text.SimpleDateFormat

def OLD_FORMAT = "m/dd/yy"
def NEW_FORMAT = "yyyy-MM-dd"
// August 12, 2010
def oldDateString = "8/12/10"
def sdf = new SimpleDateFormat(OLD_FORMAT)
def d = sdf.parse(oldDateString)
sdf.applyPattern(NEW_FORMAT)
newDateString = sdf.format(d)
println "Date in modified format : $newDateString"

编辑: 根据评论

按源格式更改

答案 2 :(得分:0)

您还可以在表达式中使用format方法将日期设置如下:

flowVars.Timestamp = server.dateTime.format("YYYYMMDDHHmm");

答案 3 :(得分:0)

#[server.dateTime.format('yyyy-MM-dd')]

答案 4 :(得分:0)

我不喜欢这样的筑巢。

我更喜欢上述答案的变体,我只保留内部功能:

output.date = str2date(input.date,"m/dd/yy")

但随后在datamapper的图形编辑器中定义了输出格式,方法是将字段设置为格式为“yyyy-MM-dd”的日期。

这两种方法都有效,但我发现这种方法更易于阅读,而且更容易向其他人解释。