[英]How to subtract two dates in dataweave
我想从当前日期中减去我的 DOB,并将结果与 Dataweave 中的整数进行比较。 我可以知道如何实现这一目标吗?
例如,我想要类似 currentDate - DOB <= 35 的东西。
我只知道一种从当前日期添加或减去年份的方法,那就是......
当前日期 - |P35Y| (将帮助我从 2016 年减去 35 年。
提前致谢!!
以下DataWeave代码将减去年份:
{
age: now.year - dateOfBirth.year
}
注意:将dateOfBirth更改为所需的日期。
这是一个例子:
1) Input Data JSON: { "DOB": "2010-08-15"}, Output: { "ageCategory": "teen"}
2) When Input is { "DOB": "1980-08-15"}, Output is { "ageCategory": "adult"}
这可以通过dataweave中的以下代码来实现:
{ (ageCategory: "teen") when ((now.year - (payload.DOB as :date).year) < 18),
(ageCategory: "adult") when ((now.year - (payload.DOB as :date).year) >= 18) }
虽然这是旧的,但这是一个常见的问题。 注意,您可以减去任意两个 DateTime 值并返回一个 Period 类型。
例如,假设您有一个具有两个任意日期的对象,start < end,例如:
{
"start": "2021-10-13 08:00:00",
"end": "2021-10-13 16:00:00"
}
您可以通过将这些字符串转换为 DateTimes,然后从 end 中减去 start 来获得差异,如下所示:
{ timeDiff: ((payload.end replace ' ' with 'T') as DateTime)
- ((payload.start replace ' ' with 'T') as DateTime)
}
在这种情况下, timeDiff 具有以下值:
|PT8H|
现在,您可以从此 Period 字符串计算秒数或分钟数或其他任何内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.