You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 21:05:03