如何使用 Dataweave 2.0/Mule 4 在输入为数字月份(例如“3”)时获取字符串中的月份(例如“March”)
输入:“3” 输出:“三月”
您可以使用月份字符串作为月份编号创建一个虚拟日期,然后将日期格式化为格式为“MMMM”的月份名称。
对于 Mule 4.4+,这可以通过
Dates 模块的
date()
功能干净地完成,这有助于从参数创建 Date
:
%dw 2.4
output application/json
fun getMonthName(month: String)=dw::core::Dates::date({year: 2023, month: month as Number, day: 1}) as String {format:"MMMM"}
---
["1","2","3","4","5","6","7","8","9","10","11","12"] map getMonthName($)
输出:
[
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
]
如果您使用的是早期的 Mule 4.x,那么我们需要对日期进行一些可怕的字符串操作:
%dw 2.0
output application/json
fun getMonthName(month: String)=do {
var fakeMonth="2023"
var fakeDay="01"
---
(fakeMonth++ month as Number as String{format:"00"} ++ fakeDay) as Date {format:"yyyyMMdd"} as String {format:"MMMM"}
}
---
["1","2","3","4","5","6","7","8","9","10","11","12"] map getMonthName($)