Mule 4 - 将 DateTime 解析为 DD/MM/YYYY 24HH:MM:SS 格式?
Mule 4 - Parse DateTime as DD/MM/YYYY 24HH:MM:SS format?
我遇到了一个要求,我需要将传入的有效负载字符串 6-12-2019 2:13:30
解析为 DateTime 格式 DD/MM/YYYY 24HH:MM:SS
我尝试了几种方法,但似乎没有任何效果。
"6-12-2019 2:13:30" as DateTime {format : "d-M-yyyy h:m:ss"}
这导致错误说明...
"Cannot coerce String (6-12-2019 2:13:30) to DateTime, caused by: Text '6-12-2019 2:13:30' could not be parsed: Unable to obtain ZonedDateTime from TemporaAccessor: {SecondOfMinute=30, MicroOfSecond=0, MilliOfSecond=0, HourOfAmPm=2, MinuteOfHour=13, NanoOfSecond=0},ISO resolved to 2019-12-06 of type java.time.format.Parsed
有人可以帮我解决这个问题吗?
谢谢。
您输入的日期时间类型不匹配。它缺少时区,'h' 格式字符暗示它是 AM/PM 日期,但它丢失了。 LocalDateTime 不需要时区。您可以更改输入和格式或更改类型。
请在下面找到一些有效示例:
%dw 2.0
output application/json
---
{
localDateTime: "6-12-2019 2:13:30 pm" as LocalDateTime {format : "d-MM-yyyy h:mm:ss a"},
localDateTime24h: "6-12-2019 14:13:30" as LocalDateTime {format : "d-MM-yyyy H:mm:ss"},
dateTime: "6-12-2019 2:13:30 +0500" as DateTime {format : "d-MM-yyyy H:mm:ss Z"}
}
输出:
{
"localDateTime": "6-12-2019 2:13:30 PM",
"localDateTime24h": "6-12-2019 14:13:30",
"dateTime": "6-12-2019 2:13:30 +0500"
}
您可以尝试将传入日期转换为您的特定格式。然后根据需要重新格式化。在下面的示例中,我们将日期转换为 MM/dd/yyyy
格式并将其重新格式化为所需格式,即 y-MM-dd
。
(date1 as Date {format: "MM/dd/yyyy"}) as String {format: "y-MM-dd"}
我遇到了一个要求,我需要将传入的有效负载字符串 6-12-2019 2:13:30
解析为 DateTime 格式 DD/MM/YYYY 24HH:MM:SS
我尝试了几种方法,但似乎没有任何效果。
"6-12-2019 2:13:30" as DateTime {format : "d-M-yyyy h:m:ss"}
这导致错误说明...
"Cannot coerce String (6-12-2019 2:13:30) to DateTime, caused by: Text '6-12-2019 2:13:30' could not be parsed: Unable to obtain ZonedDateTime from TemporaAccessor: {SecondOfMinute=30, MicroOfSecond=0, MilliOfSecond=0, HourOfAmPm=2, MinuteOfHour=13, NanoOfSecond=0},ISO resolved to 2019-12-06 of type java.time.format.Parsed
有人可以帮我解决这个问题吗?
谢谢。
您输入的日期时间类型不匹配。它缺少时区,'h' 格式字符暗示它是 AM/PM 日期,但它丢失了。 LocalDateTime 不需要时区。您可以更改输入和格式或更改类型。
请在下面找到一些有效示例:
%dw 2.0
output application/json
---
{
localDateTime: "6-12-2019 2:13:30 pm" as LocalDateTime {format : "d-MM-yyyy h:mm:ss a"},
localDateTime24h: "6-12-2019 14:13:30" as LocalDateTime {format : "d-MM-yyyy H:mm:ss"},
dateTime: "6-12-2019 2:13:30 +0500" as DateTime {format : "d-MM-yyyy H:mm:ss Z"}
}
输出:
{
"localDateTime": "6-12-2019 2:13:30 PM",
"localDateTime24h": "6-12-2019 14:13:30",
"dateTime": "6-12-2019 2:13:30 +0500"
}
您可以尝试将传入日期转换为您的特定格式。然后根据需要重新格式化。在下面的示例中,我们将日期转换为 MM/dd/yyyy
格式并将其重新格式化为所需格式,即 y-MM-dd
。
(date1 as Date {format: "MM/dd/yyyy"}) as String {format: "y-MM-dd"}