如何在DW中将DateTime截断为分钟?

问题描述 投票:0回答:1

寻找一种方法将时间戳日期时间值(例如 now() 的结果)截断为分钟,同时保留时区,即如下所示:

来自: |2023-10-04T10:48:07.975905Z|

致: |2023-10-04T10:48:00.000000Z|

这当然可以通过首先将 DateTime 转换为 String,然后应用字符串操作,然后再转换回 DateTime 来完成。但我想这会很丑。

因此,寻找更优雅的方式来实现这一结果。

Mule 提供了类似的函数 atBeginningOfHour,它在小时级别上进行截断。
我正在寻找类似的功能,但需要几分钟。

Mule DW版本是2.4.0(最新)。

mule mule4 mule-esb
1个回答
0
投票

使用句点减去分钟和秒的解决方案。我使用字符串插值来组合秒和纳秒,做了一些作弊。可以用数学表达式代替,但我认为意图可能不太清楚。

import * from dw::core::Periods

fun truncateAtMinutes(t)=t - minutes(t.minutes) - seconds("$(t.seconds).$(t.nanoseconds)") 
---
truncateAtMinutes(|2023-10-04T10:48:07.975905-03:00|)

输出:

|2023-10-04T10:00:00-03:00|
© www.soinside.com 2019 - 2024. All rights reserved.