当前位置: 首页 > 知识库问答 >
问题:

使用数据组织的mule esb中的数据操作

彭坚壁
2023-03-14

我有需求,比如需要使用数据编织找到两个日期之间的差异,输入和输出都是XML格式。

这两个日期格式yyyy.mm.dd和输出日期格式必须像mm.dd.yy或mm.dd.yyyy.

请帮助我,谢谢

共有3个答案

葛航
2023-03-14

您可以使用 Java/Groovy 创建一个全局函数,并使用 DateTime 对象来查找差异并从该函数返回。现在,您可以在数据编织中使用该函数。

逑兴安
2023-03-14

在Dataweave中,您可以将字符串转换为日期格式,然后减去它们

输入

<dates>
   <startDate>2007.05.01</startDate>
   <endDate>2017.02.15</endDate>
</dates>

使改变

%dw 1.0
%var startDate = payload.dates.startDate as :date {format: "yyyy.MM.dd"}
%var endDate = payload.dates.endDate as :date {format: "yyyy.MM.dd"}
%output application/json
---
{
    difference: startDate - endDate
}

输出

{
   "difference": "P9Y9M14D"
}

9年9个月14天

常炯
2023-03-14

您可以像这样格式化日期(示例):

yourInputDate为:localdatetime(格式:“yyyy-MM-dd'T'HH:MM:ss”})

您可以添加和减去日期,这是我在带有变量的项目中使用日期的另一个示例:

%var stamp = (now as :localdatetime {format: "yyyy-MM-dd'T'HH:mm:ss"})
%var dayDiff = ("P" ++ (stamp.dayOfWeek - 1) ++ "D") as :period
%var firstDateWeek = (stamp - dayDiff) as :localdatetime {format: "yyyy-MM-dd"}

文档在这里: https://docs.mulesoft.com/mule-user-guide/v/3.8/dataweave-types#datetime

 类似资料:
  • 我找不到任何关于在Jogl中呈现交错顶点数组(而不是VBO)的正确方法的信息。具体地说,使用glVertexAttribPointer()似乎不允许在交织数据中指定偏移量(FloatBuffer)。在C、C++或Objective-C中,我确切地知道如何做到这一点,但在Java中似乎没有明确的胜利之路。 我尝试过的唯一一件看起来可能起作用的事情是在使用glVertexAttribPointer()

  • ,或者 structure,是一个允许我们命名并将多个相关值包装进一个有意义的组合的自定义类型。如果你来自一个面向对象编程语言背景,struct 就像对象中的数据属性(字段组合)。在本章中,我们会对比元组与结构体的异同,展示如何使用结构体,并讨论如何在结构体上定义方法和关联函数来指定与结构体数据相关的行为。结构体和 枚举(enum)(将在第六章讲到)是为了充分利用 Rust 的编译时类型检查来在程

  • 创建表 查看表结构 查看表详细结构 修改表名 修改字段的数据类型 修改字段名 增加字段 删除字段 删除关联表 (1)删除表的外键约束 (2)删除没有被关联的普通表 (3)删除被其他表关联的父表 创建表: CREATE TABLE 表名 (属性名 数据类型 [完整性约束条件], 属性名 数据类型 [完整性约束条件], 属性名 数据类型 [完整性约束条件]) “完整性约束条件”是指指定某些字段的某些特

  • 嗨,我使用的是Spring启动和Spring数据,我想从数据库中获取数据的基础上的id,但我不能检索它。我得到这个错误"异常": "org.springframework.dao.InvalidDataAccessApiUsageExctive","消息":"org.hibernate.hql.internal.QueryExcutionRequest estExctive:不支持DML操作[Up

  • 本文向大家介绍Java中的数据库操作,包括了Java中的数据库操作的使用技巧和注意事项,需要的朋友参考一下 本文提供了有关如何创建简单JDBC应用程序的示例。这将向您展示如何打开数据库连接,执行SQL查询以及显示结果。 创建JDBC应用程序 构建JDBC应用程序涉及以下六个步骤- 导入软件包:要求您包含包含数据库编程所需的JDBC类的软件包。通常,使用import java.sql。*就足够了。

  • 下面是关于中的行操作的一个很好的SO解释 我想到的一个替代方法是为每一行使用一个唯一的< code>id,然后使用< code>by参数应用一个函数。像这样: 问题: > 有没有好的理由不使用这种方法?也许还有其他更有效的选择? 为什么使用< code>by =。我不一样了? < code>dt[,sdd := sd(。SD[,-1,with=FALSE]),by =。I ]