如何从 Mule 4 中的数字中获取月份名称

问题描述 投票:0回答:1

如何使用 Dataweave 2.0/Mule 4 在输入为数字月份(例如“3”)时获取字符串中的月份(例如“March”)

输入:“3” 输出:“三月”

date mule dataweave mule4
1个回答
0
投票

您可以使用月份字符串作为月份编号创建一个虚拟日期,然后将日期格式化为格式为“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($)
© www.soinside.com 2019 - 2024. All rights reserved.