如何在Mule 4中根据数字获取月份名称
在DataWeave 2.0/Mule 4中把数字月份转为英文月份名
下面提供两种实用的实现方式,适用于输入为字符串格式数字(如"3")的场景:
方法一:利用日期格式化函数
通过构造指定月份的日期对象,再用format函数提取月份全称:
%dw 2.0 output application/json --- // 将输入字符串转为数字,构造对应月份的日期后格式化输出 format((1970-01-01 as Date) + ((payload as Number - 1) as Period), "MMMM")
- 原理:以1970年1月1日为基准,加上(目标月份数-1)的周期得到对应月份的日期,
MMMM格式符会输出英文月份全称。 - 输入
"3"时,输出为"March"。
方法二:自定义月份映射数组
直接定义包含所有月份名的数组,通过数字索引获取对应值(注意数组索引从0开始,需对输入数字减1):
%dw 2.0 output application/json // 按1-12月顺序定义月份名数组 var monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] --- // 先将输入转为数字,再取对应索引的月份名 monthNames[(payload as Number) - 1]
- 优势:无需处理日期逻辑,更直观高效,适合仅需月份名映射的场景。
- 输入
"3"时,输出为"March"。
可选:添加输入校验
如果需要处理非1-12的无效输入,可以增加判断逻辑:
%dw 2.0 output application/json var monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] var monthNum = payload as Number --- if (monthNum >= 1 and monthNum <= 12) monthNames[monthNum - 1] else "无效的月份数字"
内容的提问来源于stack exchange,提问作者Vatsal Mehta
相关产品推荐
相关产品推荐

