转换为正确的日期时间格式 - dataweave
Convert to proper dateTime format - dataweave
我有一个请求,格式如下
{
"updatedTime": "Mon Mar 14 15:34:47 NZDT 2022"
}
响应应转换为“yyyy-MM-dd'T'HH:mm:ss”
{
"updatedTime": "2022-03-14'T'15:34:47"
}
我还参考了 Mule 文档 https://docs.mulesoft.com/dataweave/2.3/dataweave-cookbook-format-dates。有什么想法吗?谢谢
使用 Mule4、Dataweave 2.0
试试这个方法Date-Parsing
%dw 2.0
output application/json
---
"updatedTime":(payload.updatedTime as String replace "NZDT" with "GMT") as DateTime {format: "EEE MMM dd HH:mm:ss O yyyy"} as LocalDateTime
输出
{
"updatedTime": "2022-03-14T15:34:47"
}
您应该使用您共享的文档 link 中的模式字符,并为整个日期构建模式。您还可以搜索有关 Java 时间包模式的示例,DataWeave date/time 模式基于这些模式。
可能不明显的是使用模式 zz
作为时区,使用 eee
作为本地化日期名称。
%dw 2.0
output application/json
---
{
updatedTime: payload.updatedTime
as DateTime { format: "eee MMM dd HH:mm:ss zz yyyy" }
as LocalDateTime
}
另一种转换给定输入的方法是
%dw 2.0
output application/json
---
payload.updatedTime as DateTime {format: "EEE MMM dd HH:mm:ss z yyyy"}
as DateTime {format: "yyyy-MM-dd'T'HH:mm:ss"}
虽然 @aled
的答案是正确的,但我真的很喜欢 Dataweave 中的 update operator,而且您可以像这样重写 Dataweave:
%dw 2.0
output application/json
---
payload update {
case .updatedTime -> $ as DateTime { format: "eee MMM dd HH:mm:ss zz yyyy" } as LocalDateTime
}
我有一个请求,格式如下
{
"updatedTime": "Mon Mar 14 15:34:47 NZDT 2022"
}
响应应转换为“yyyy-MM-dd'T'HH:mm:ss”
{
"updatedTime": "2022-03-14'T'15:34:47"
}
我还参考了 Mule 文档 https://docs.mulesoft.com/dataweave/2.3/dataweave-cookbook-format-dates。有什么想法吗?谢谢
使用 Mule4、Dataweave 2.0
试试这个方法Date-Parsing
%dw 2.0
output application/json
---
"updatedTime":(payload.updatedTime as String replace "NZDT" with "GMT") as DateTime {format: "EEE MMM dd HH:mm:ss O yyyy"} as LocalDateTime
输出
{
"updatedTime": "2022-03-14T15:34:47"
}
您应该使用您共享的文档 link 中的模式字符,并为整个日期构建模式。您还可以搜索有关 Java 时间包模式的示例,DataWeave date/time 模式基于这些模式。
可能不明显的是使用模式 zz
作为时区,使用 eee
作为本地化日期名称。
%dw 2.0
output application/json
---
{
updatedTime: payload.updatedTime
as DateTime { format: "eee MMM dd HH:mm:ss zz yyyy" }
as LocalDateTime
}
另一种转换给定输入的方法是
%dw 2.0
output application/json
---
payload.updatedTime as DateTime {format: "EEE MMM dd HH:mm:ss z yyyy"}
as DateTime {format: "yyyy-MM-dd'T'HH:mm:ss"}
虽然 @aled
的答案是正确的,但我真的很喜欢 Dataweave 中的 update operator,而且您可以像这样重写 Dataweave:
%dw 2.0
output application/json
---
payload update {
case .updatedTime -> $ as DateTime { format: "eee MMM dd HH:mm:ss zz yyyy" } as LocalDateTime
}