Mule 4字符串转日期格式报错求助:无法转换220907为日期
日期字符串转Date类型报错的解决方法
问题重现
输入数据:
{ "Date" : "220907" }
使用的DataWeave代码:
output application/java --- payload.Date as String {format: "YYMMDD"} as Date{format: "YYMMDD"}
报错信息:
Cannot coerce String (220907) to Date, caused by: Text '220907' could not be parsed: Unable to convert
220907to Date.
4| payload.Date as String {format: "YYMMDD"} as Date{format: "YYMMDD"}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Trace:
at main::main (line: 4, column: 1)
问题原因
你用错了日期格式符:DataWeave里大写的YY是基于周的年份(Week-based Year),和你输入的普通公历年份格式不匹配。输入的220907是「两位数年份+两位数月份+两位数日期」,需要用小写的yy来匹配两位数公历年份。
另外,payload.Date本身就是字符串,没必要多一步as String {format: "YYMMDD"}的转换,这步完全多余。
修正后的代码
output application/java --- payload.Date as Date {format: "yyMMdd"}
格式符说明
yy:匹配两位数的公历年份(22对应2022年)MM:匹配两位数的月份(09对应9月)dd:匹配两位数的日期(07对应7日)
运行这段代码后,就能成功把220907转换成对应的2022-09-07日期对象。
内容的提问来源于stack exchange,提问作者Avinash
相关产品推荐
相关产品推荐

