Mulesoft добавить Excel даты серийный номер на сегодняшний день - PullRequest
0 голосов
/ 25 октября 2018

Я читаю данные файла Excel, один из столбцов - «Дата / время» (т.е. 01.01.1990 00:00:00), но Anypoint считывает его как строковый тип «Серийный номер даты Excel» (т.е. 33257.415972222225),Как преобразовать в DataWeave дату правильно?

ex: date: "01/01/1990 00:00:00" как: date {формат: "MM / дд / гггг ЧЧ: мм: сс"} + "P $ (33257.415972222225 / 12) Y"

1 Ответ

0 голосов
/ 04 ноября 2018

Существует существующий ответ для преобразования дат Excel в даты Unix (время эпохи), который можно легко адаптировать к DataWeave.Обратите внимание, что в Excel и Windows используются разные начальные даты, поэтому формула может меняться соответственно.

script

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

(это 9 июня 2011 г., 10:30 в Windows Excel):

"40703.4375"`

вывод:

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