我需要將這種格式的日期“2021-09-04T00:00:00-05:00”和字串“37320000”的時間結合起來,將這兩者組合成這種格式“yyyy-MM-ddTHH” :mm:ss.SSSZ" 默認值 ss.SSS 是 00.000。這可以在 Mule 中使用 dataweave 2.0 來實作嗎?
uj5u.com熱心網友回復:
使用您的示例,這是實作所需格式的 dw。在網上
uj5u.com熱心網友回復:
我發現這種方法使用簡單的時間數學將秒分解為小時、分鐘和剩余的秒。然后轉換為可以添加到原始日期的時間段。
請注意,我在輸入時間中添加了 1 毫秒以確認毫秒在輸出中正確表示。
腳本:
%dw 2.0
output application/json
fun addElapsedToDate(date, elapsedMs) =
do {
var s=(elapsedMs / 1000) mod 60
var m=floor(elapsedMs / (1000*60)) mod 60
var h=floor(elapsedMs / (1000*60*60)) mod 24
var ms=elapsedMs mod 1000
---
date "PT$(h)H" as Period "PT$(m)M" as Period "PT$(s)S" as Period
}
var date="2021-09-04T00:00:00-05:00"
var duration="37320001"
---
(addElapsedToDate(date as DateTime {format: "yyyy-MM-dd'T'HH:mm:ssxxx"}, duration as Number))
as String {format:"yyyy-MM-dd'T'HH:mm:ss.SSSZ"}
輸出:
"2021-09-04T10:22:00.001-0500"
如果您使用的是 Mule 4.4,您可以使用新函式Periods::seconds()來實作相同的結果:
%dw 2.0
output application/json
import * from dw::core::Periods
var date="2021-09-04T00:00:00-05:00"
var duration="37320001"
---
date as DateTime {format: "yyyy-MM-dd'T'HH:mm:ssxxx"}
seconds((duration as Number)/1000)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/325500.html
上一篇:格式化本地化日期時間C#
