使用dataweave进行字符串到日期的转换

时间:2018-07-25 13:54:17

标签: mule dataweave string-to-datetime type-coercion

Input String: 201801
Output String format: 01.2018

我尝试使用following,但是它不起作用,我还在“ Type Coercion Table” https://docs.mulesoft.com/mule-user-guide/v/3.8/dataweave-types#type-coercion-table中查找了字符串最新的conversrion / coercion表。我没有找到任何可以帮助我的东西。

as :date {format: "yyyyww"} as :string {format: "ww.yyyy"}

感谢任何人有任何想法要分享。

1 个答案:

答案 0 :(得分:0)

如果您不介意字符串黑客,您只需将输入字符串的各个部分移动:

%dw 1.0
%output application/json
%var inputDate = "201801"
---
{
    outputDate: inputDate[4..5] ++ "." ++ inputDate[0..3]
}

其输出是

{
  "outputDate": "01.2018"
}

但是,上面的方法不是null安全的,如果输入的日期字符串有可能为空,或者小于6个字符,则会出现运行时错误。您可以通过检查DW中的日期来解决此问题,例如

outputDate: (inputDate[4..5] ++ "." ++ inputDate[0..3]) when inputDate != null and ( sizeOf inputDate ) == 6 otherwise null