mule - 有没有办法使用 Dataweave 2.0.. 将特定输入日期(即(120042))转换为(DD MMM YYYY)?
问题描述
Order_Entry_Date 字段格式为 6 位。“120xxx” > “120” = 2020 年,“xxx”是该年的天数。示例:121001 = 2021 年 1 月 1 日
此输入格式的 Record_Timestamp 字段 - “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"
}
]
}
解决方案
看起来这是该Order_Entry_Date
字段的 Julian 类型日期。
以下脚本应该可以产生预期的输出。
%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"}
}
}
推荐阅读
- c - 卡在c中的指针交换循环中
- entity-framework-core - 没有关系的 EF Core 导航属性(外键)
- php - 在 pdo 中使用 get count(*) 函数的问题
- flutter - Flutter:Provider:如何处理模型依赖关系?
- android - 在 Firebase 上保存坐标后,活动会自动刷新吗?
- visual-studio - SQL Azure 数据库构建失败 - 必须在数据库范围凭据之前创建主密钥
- github-actions - 如何在 Windows Server 上的 GitHub 操作中设置环境变量?
- flutter - 如何在http get请求中传递参数?
- javascript - 灰度图像 URL
- reactjs - React Native Expo:下拉按钮/拆分按钮