now() - 部署在任何点平台上的 mule 应用程序的当前时间问题

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

我对我们的 Mule 应用程序中的当前时间问题有疑问,该应用程序部署在任何点平台上。 当在 mule 应用程序中使用“now()”时,它始终返回一个与我预期的欧洲/柏林时间相差一小时的时间。 因此,我进行了更改,明确请求欧洲/柏林时区的时间。见下文

var formattedCurrentTime= now() as String { format: "yyyy-MM-dd'T'HH:mm:ss", timezone: "Europe/Berlin" }

但它仍然返回相同的结果,你对此有什么想法吗? PS:问题仅出现在任意平台上部署的 Mule App 上。 使用本地系统或在 https://dataweave.mulesoft.com/learn/dataweave 它工作正常

有什么提示或想法吗?提前谢谢大家(亲爱的骡骑手)!

mule dataweave mulesoft mule4 anypoint-platform
1个回答
0
投票

部署在CloudHub上的Mule应用程序始终使用UTC作为时区。柏林时区是 UTC+1,这可能解释了这种差异。您应该做的是更改

now()
返回的日期时间的时区,然后将其格式化为字符串。

示例

%dw 2.0
output application/json
---
{
    now: now() as String { format: "yyyy-MM-dd'T'HH:mm:ss" },
    nowToBerlin: (now() >> "Europe/Berlin") as String { format: "yyyy-MM-dd'T'HH:mm:ss" }
}

输出:

{
  "now": "2023-12-26T19:18:51",
  "nowToBerlin": "2023-12-26T20:18:51"
}

欲了解更多信息,请阅读:https://docs.mulesoft.com/dataweave/latest/dataweave-cookbook-change-time-zone

© www.soinside.com 2019 - 2024. All rights reserved.