使用DataWeave在Mule中转换为日期格式

kee*_* ch 3 mule dataweave

我的要求是使用Mule中的DataWeave将字符串转换为日期格式

输入字符串

8/30/2015  4:00:13 PM
Run Code Online (Sandbox Code Playgroud)

输出日期必须是MM/DD/YYYY格式,即

08/30/2015 
Run Code Online (Sandbox Code Playgroud)

我尝试过使用以下逻辑

(($[1] splitBy " ")[0]) as :date{format:"[m01]/[d01]/[y0001]"} 
Run Code Online (Sandbox Code Playgroud)

这给了错误

Exception while executing: 
"Order Date":(($[1] splitBy " ")[0]) as :date{format:"[m01]/[d01]/[y0001]"},
 Cannot coerce a :string to a :date                                                                                                                                                          ^
Run Code Online (Sandbox Code Playgroud)

我使用的是Mule Anypoint Studio版本:5.2.0

Sho*_*oki 9

首先,您需要将其转换为localdatetime(无时区),然后转换为具有所需格式的字符串.

"8/30/2015 4:00:13 PM" 
    as :localdatetime {format: "M/dd/yyyy h:mm:ss a"}
    as :string {format: "MM/dd/yyyy"}
Run Code Online (Sandbox Code Playgroud)

有关其他信息,请参阅 https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html

"8/30/2015 4:00:13 PM" 
    as LocalDateTime {format: "M/dd/yyyy h:mm:ss a"}
    as String {format: "MM/dd/yyyy"}

Run Code Online (Sandbox Code Playgroud)