无法在 Mule 4 中将 Unix 时间戳正确转换为 DateTime

Cannot Properly Transform Unix Timestamp to DateTime in Mule 4

所以我正在尝试将 Unix 时间戳转换为人类可读的日期格式(例如:2021 年 1 月 20 日)。

这是我从 API 得到的响应,它给出了 Unix 时间戳

"time":1388620296020

然后我尝试使用转换消息对其进行转换,我的代码如下所示

date: (object.properties.time as DateTime) as String {
        format: "MMMM dd, yyyy"
    },

但是我部署后得到的输出是这样的

"date": "August 17, +45973"

我不确定为什么会这样。

在 Mule 4 中将 Unix 时间戳转换为日期时间 输入 : { “时间”:1388620296020 } - - - - -输出 - - - - - { “日期”:“2014 年 1 月 1 日 11:51:36” }

如何编写脚本,您了解正确的日期时间格式。 %dw 2.0 输出 application/json

{ date: payload.time as DateTime {unit: "milliseconds"} as String {format: 'dd-MMM-yyyy hh:mm:ss'} }

更多信息参考link:https://help.mulesoft.com/s/question/0D52T00004tIkcf/how-to-convert-unix-timestamp-to-normal-human-readable-timestamp-using-dw-20

谢谢

Dataweave中可以直接将Epoch转为DateTime

试试这个

日期:(object.properties.time as DateTime {unit : "milliseconds"})

输出:

“日期”:“2014-01-01T23:51:36.02Z”

您也可以通过在下面输入 link 来检查输出

https://www.unixtimestamp.com/

https://www.epochconverter.com/

另一种获取问题中提到的确切格式的方法(是:2021 年 1 月 20 日)可以通过以下脚本实现

%dw 2.0
output application/json
---
date: payload.message as DateTime {unit : "milliseconds"}
as String {format: 'MMMM dd,yyyy'}

此脚本将为您提供如下输出:

{
  "date": "January 01,2014"
}