Mulesoft将Excel日期序列号添加到日期

时间:2018-10-24 21:33:01

标签: date mule date-formatting anypoint-studio

我正在读取excel文件数据,该列之一是“ DateTime”(即1990年1月1日00:00:00),但是Anypoint将其读取为字符串类型“ excel日期序列号”(即33257.415972222225) 。 如何正确转换DataWeave中的日期?

例如:     date:“ 01/01/1990 00:00:00” as:date {format:“ MM / dd / yyyy HH:mm:ss”} +“ P $(33257.415972222225 / 12)Y”

1 个答案:

答案 0 :(得分:0)

对于converting Excel dates to Unix dates(时期)有一个现成的答案,可以很容易地适应DataWeave。请注意,Windows和Mac中的Excel使用不同的开始日期,因此公式也会相应变化。

脚本

%dw 1.0
%output application/json
---
{
  dateExcelWindows: (((payload as :number) - 25569 ) * 86400 ) as :datetime,
  dateExcelMac: (((payload as :number) - 24107 ) * 86400 ) as :datetime
}

输入(这是Windows Excel中的2011年6月9日上午10:30):

"40703.4375"`

输出:

{
   "dateExcelWindows": "2011-06-09T10:30:00Z",
   "dateExcelMac": "2015-06-10T10:30:00Z"
}