Mule 是否有办法使用Dataweave 2.0将特定输入日期(即120042)转换为(DD-MMM-YYYY)。。?

Mule 是否有办法使用Dataweave 2.0将特定输入日期(即120042)转换为(DD-MMM-YYYY)。。?,mule,dataweave,mulesoft,Mule,Dataweave,Mulesoft,订单\输入\日期字段格式为6位数字。“120xxx”>“120”=2020年,“xxx”是该年的天数。示例:121001=2021年1月1日 记录此输入格式的时间戳字段-“YYYY-MM-DD-HH.MM.ss.decimalsecond”到输出格式“DD-MMM-YYYY-HH:MM:ss”(省略十进制秒) 输入 { "orders": [ { "Order_Number": "1112999", &q

订单\输入\日期字段格式为6位数字。“120xxx”>“120”=2020年,“xxx”是该年的天数。示例:121001=2021年1月1日

记录此输入格式的时间戳字段-“YYYY-MM-DD-HH.MM.ss.decimalsecond”到输出格式“DD-MMM-YYYY-HH:MM:ss”(省略十进制秒)

输入

{
 "orders": [
  {
    
   "Order_Number": "1112999",  
   "Order_Entry_Date": "120042",
   "Record_Timestamp": "2020-08-09-21.10.21.350090"
  }
 ]
}
{
 "orders": [
  {
    
   "Order_Number": "1112999",  
   "Order_Entry_Date": "13 Mar 2020", 
   "Record_Timestamp":  "09 Aug 2020 21:10:21"
  }  
 ]
}
输出

{
 "orders": [
  {
    
   "Order_Number": "1112999",  
   "Order_Entry_Date": "120042",
   "Record_Timestamp": "2020-08-09-21.10.21.350090"
  }
 ]
}
{
 "orders": [
  {
    
   "Order_Number": "1112999",  
   "Order_Entry_Date": "13 Mar 2020", 
   "Record_Timestamp":  "09 Aug 2020 21:10:21"
  }  
 ]
}
试试这个:

%dw 2.0
output application/json
var data = {
 "orders": [
  {
    
   "Order_Number": "1112999",  
   "Order_Entry_Date": "120042",
   "Record_Timestamp": "2020-08-09-21.10.21.350090"
  }
 ]
}
---
data.orders map {
    Order_Number: $.Order_Number,
    Order_Entry_Date: $.Order_Entry_Date,
    Record_TimeStamp: $.Record_Timestamp[0 to 18] 
                        as LocalDateTime {format: "yyyy-MM-dd-HH.mm.ss"}
                        as String {format: "dd MMM yyyy HH:mm:ss"}
}
我不知道您在订单输入日期中的日期是什么,所以我顺其自然


我还对时间戳格式进行了假设。如果您提供我可以修改的值范围。

看起来这是
订单输入日期
字段的儒略式日期。
下面的脚本应该可以产生预期的输出

%dw 2.0
output application/json
fun convertJulianDate(d) = do {
    var day = d[3 to 5]
    var year = d[1 to 2]
    ---
    ((("0101" ++ year ) as Date {format: "ddMMyy"}) + ("P$(day - 1)D" as Period)) as Date {format: "dd MMM yyyy"}
} 
---
{
    orders: payload.orders map {
        "Order_Number": $.Order_Number,  
        "Order_Entry_Date": convertJulianDate($.Order_Entry_Date),
        "Record_Timestamp": $.Record_Timestamp as LocalDateTime {format: "yyyy-MM-dd-HH.mm.ss.SSSSSS"} as String {format: "dd MMM yyyy HH:mm:ss"}
    }
}