Я читаю данные файла Excel, один из столбцов - «DateTime» (например, 01.01.1990 00:00:00), но Anypoint считывает его как строковый тип «Серийный номер даты в Excel» (например, 33257.415972222225). Как правильно преобразовать дату в DataWeave?
бывший: дата: "01.01.1990 00:00:00" как: дата {формат: "ММ / дд / гггг ЧЧ: мм: сс"} + "P $ (33257.415972222225 / 12) Г"
На самом деле это не сработало, поэтому я удаляю этот комментарий.
Существует существующий ответ для преобразование дат Excel в даты Unix (время эпохи), который можно легко адаптировать к DataWeave. Обратите внимание, что в Excel в Windows и Mac используется другая дата начала, поэтому формула меняется соответственно.
сценарий
%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"
}
Не могли бы вы дать ответ на свой вопрос и отметить его как правильный?