我对我们的 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 它工作正常
有什么提示或想法吗?提前谢谢大家(亲爱的骡骑手)!
部署在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