DataWeave 2转换dd-MMM-yyyy日期为yyyy-MM-dd格式报错如何解决
DataWeave 2日期格式转换报错解决方案
报错根因
你使用的解析格式dd-MMM-yy仅适配两位年份的日期输入,而你从CSV获取的日期是4位完整年份的dd-MMM-yyyy格式,长度不匹配导致解析时剩余字符无法识别,触发报错:
Cannot coerce String (06-Aug-2021) to Date, caused by: Text '06-Aug-2021' could not be parsed, unparsed text found at index 9
修复方案
基础写法(适用于默认区域为英文的环境)
将解析日期的格式调整为dd-MMM-yyyy即可,代码如下:TRANSACTION_DATE as Date {"format": "dd-MMM-yyyy"} as String {"format": "yyyy-MM-dd"}
兼容多区域写法
如果你的运行环境默认区域不是英文,会无法识别Aug这类英文月份缩写,可主动指定解析区域为英文:TRANSACTION_DATE as Date {"format": "dd-MMM-yyyy", "locale": "en"} as String {"format": "yyyy-MM-dd"}
验证示例
输入值为"06-Aug-2021"时,运行上述代码会输出目标格式的"2021-08-06",符合转换要求。
内容的提问来源于stack exchange,提问作者hpandalai
相关产品推荐
相关产品推荐

