如何在 Mule 工作流程中获取当前日期

How to get current date in Mule workflow

我希望在工作流程中获取当前日期,以便将其附加到我正在写入文件夹的文件名中。

当我环顾四周时,我只能看到如何在 dataweave 中执行此操作,但这看起来不适用于 dataweave 之外的其他组件的配置。

我该怎么做?

谢谢

#[server.dateTime.format('yyyyMMddHHmmssSSS')] 或您喜欢的任何其他格式。

文档:https://docs.mulesoft.com/mule-runtime/3.9/mule-expression-language-date-and-time-functions#obtaining-the-server-time

在 Mule 3 中,您可以使用 DataWeave 轻松完成此操作并将其分配给变量或有效载荷,尽管 XML 比 utechtzs 的答案中的 MEL 表达式更冗长。

作为如何使用日期创建文件名并将字符串分配给变量的示例:

<dw:transform-message doc:name="Transform Message">
  <dw:set-variable variableName="filename"><![CDATA[%dw 1.0
     %output application/java
     ---
     "myfile-" ++ (now as :string {format: "yyyyMMddHHmmssSSS"})]]>
  </dw:set-variable>
</dw:transform-message>
<logger level="INFO" doc:name="Logger" message="#[flowVars.filename]"/>

在Mule 4中,DataWeave取代了表达式中的MEL,您可以直接使用它。例子: #["myfile-" ++ (now() as String {format: "yyyyMMddHHmmssSSS"})]

两个示例 return 相同的 Java 字符串。示例:"myfile-20181117150935499"