首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在dataweave中减去两个日期

问如何在dataweave中减去两个日期
EN

Stack Overflow用户
提问于 2016-08-08 17:00:14
回答 3查看 1.7K关注 0票数 0

我想从当前日期中减去我的道布,并将结果与Dataweave中的整数进行比较。我可以知道怎样才能做到这一点吗?

例如,我想要像currentDate -道布<= 35这样的东西。

我只知道从当前日期中增加或减少年份的一种方法,那就是…

currentDate - |P35Y| (将帮助我从2016年减去35年。

提前感谢!!

EN

回答 3

Stack Overflow用户

发布于 2016-08-08 18:13:25

下面的DataWeave代码将减去年份:

代码语言:javascript
复制
{
    age: now.year - dateOfBirth.year
}

注意:将dateOfBirth更改为所需的日期。

票数 0
EN

Stack Overflow用户

发布于 2016-08-16 02:47:20

下面是一个示例:

代码语言:javascript
复制
1) Input Data JSON: { "DOB": "2010-08-15"}, Output: { "ageCategory": "teen"}
2) When Input is { "DOB": "1980-08-15"}, Output is { "ageCategory": "adult"}

这可以通过dataweave中的以下代码来实现:

代码语言:javascript
复制
{ (ageCategory: "teen")  when ((now.year - (payload.DOB as :date).year) < 18),
(ageCategory: "adult") when ((now.year - (payload.DOB as :date).year) >= 18) }
票数 0
EN

Stack Overflow用户

发布于 2021-10-13 20:42:59

虽然这是一个老问题,但它是一个常见的问题。请注意,您可以将任意两个DateTime值相减,得到一个周期类型。

例如,假设您有一个具有两个任意日期的对象,start < end,例如:

代码语言:javascript
复制
{
"start": "2021-10-13 08:00:00",
"end":   "2021-10-13 16:00:00"
}

您可以通过将这些字符串转换为DateTimes,然后从end中减去start来获得差值,如下所示:

代码语言:javascript
复制
{ timeDiff: ((payload.end replace ' ' with 'T') as DateTime)
            - ((payload.start replace ' ' with 'T') as DateTime)
}

在本例中,timeDiff的值为:

代码语言:javascript
复制
|PT8H|

现在,您可以从这个句号字符串中计算秒数或分钟数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38825060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档