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

Mule 使用dataweave进行字符串到日期的转换,mule,dataweave,string-to-datetime,type-coercion,Mule,Dataweave,String To Datetime,Type Coercion,我尝试使用以下命令,但它不起作用,我还在“类型强制表”中查找字符串到日期的强制/强制表。我没有找到什么东西来帮我 Input String: 201801 Output String format: 01.2018 如果有任何人有任何想法可以分享,我们将不胜感激。如果您不介意对字符串进行一些黑客攻击,您只需移动输入字符串的各个部分即可: as :date {format: "yyyyww"} as :string {format: "ww.yyyy"} 其结果是 %dw 1.0 %outpu

我尝试使用以下命令,但它不起作用,我还在“类型强制表”中查找字符串到日期的强制/强制表。我没有找到什么东西来帮我

Input String: 201801
Output String format: 01.2018

如果有任何人有任何想法可以分享,我们将不胜感激。

如果您不介意对字符串进行一些黑客攻击,您只需移动输入字符串的各个部分即可:

as :date {format: "yyyyww"} as :string {format: "ww.yyyy"}
其结果是

%dw 1.0
%output application/json
%var inputDate = "201801"
---
{
    outputDate: inputDate[4..5] ++ "." ++ inputDate[0..3]
}
但是,如果输入日期字符串有可能为空,或者如果它少于6个字符,则会出现运行时错误,但上述设置不是空安全的。你可以通过检查数据仓库中的日期来解决这个问题,比如

{
  "outputDate": "01.2018"
}

仅需确认-输入日期格式为2018年第一周(基于您使用的格式掩码)?我认为您无法将其解析为日期,因为日期需要精确的日期才能生效。是的,我同意,我们不能将其格式化为日期。是的,输入日期格式为2018年第一周。我们可以尝试的其他选择是什么,有什么想法吗?非常感谢您的支持,它工作顺利。有时,解决办法是最简单的形式。我一心想用:date格式完成它,这在本例中是不可能的。
outputDate: (inputDate[4..5] ++ "." ++ inputDate[0..3]) when inputDate != null and ( sizeOf inputDate ) == 6 otherwise null