Mulesoft Dataweave 零分区时间戳转换
Mulesoft Dataweave zero zoned timestamp conversion
我希望将日期时间字段转换为 ZonedDatetime,但时间戳为零。
我有一个像下面这样的功能 -
fun dateInSecToDateTimePST(d : String) = if (d != null)
(d as Number as DateTime {unit: "seconds"} >> "CST")
else null
这个的输出是
2020-11-20T21:30:00-06:00
但是我期望的输出如下所示-
2020-11-20T00:00:00-06:00
时间戳将始终保持为零,但有偏移量。有什么建议吗?我正在使用 %dw 2.0
和 Mule4
使用日期时间类型,您可以分解日期时间输入并将其与归零的时间片段连接起来,如下所示:
%dw 2.0
output application/json
fun dateInSecToDateTimePST(d : String) = do {
var date = (d as Number as DateTime {unit: "seconds"}) as Date
var time = "00:00:00" as Time
var zone = "CST" as TimeZone
---
if (d != null)
date ++ time ++ zone
else null
}
---
dateInSecToDateTimePST(payload.time)
如果需要,您也可以将时区设为动态。
我希望将日期时间字段转换为 ZonedDatetime,但时间戳为零。 我有一个像下面这样的功能 -
fun dateInSecToDateTimePST(d : String) = if (d != null)
(d as Number as DateTime {unit: "seconds"} >> "CST")
else null
这个的输出是
2020-11-20T21:30:00-06:00
但是我期望的输出如下所示-
2020-11-20T00:00:00-06:00
时间戳将始终保持为零,但有偏移量。有什么建议吗?我正在使用 %dw 2.0
和 Mule4
使用日期时间类型,您可以分解日期时间输入并将其与归零的时间片段连接起来,如下所示:
%dw 2.0
output application/json
fun dateInSecToDateTimePST(d : String) = do {
var date = (d as Number as DateTime {unit: "seconds"}) as Date
var time = "00:00:00" as Time
var zone = "CST" as TimeZone
---
if (d != null)
date ++ time ++ zone
else null
}
---
dateInSecToDateTimePST(payload.time)
如果需要,您也可以将时区设为动态。