我正在读取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”
答案 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"
}