Как получить максимальное время в массиве с помощью dataweave mule

У меня есть входной массив, как показано ниже

   [{"modifiedDate":"2015-07-01T01:00:00.521"},{"modifiedDate":"2018-07-01T03:23:00.654"},{"modifiedDate":"2017-03-14T11:25:35.877"},{"modifiedDate":"2018-06-01T05:23:00.712"}]

Из приведенного выше ввода я должен получить только самое высокое значение даты и времени. Как это сделать в Dataweave


person Gopi    schedule 27.02.2018    source источник


Ответы (1)


(payload orderBy (($.modifiedDate ++ "Z") as :datetime {format: "yyyy-MM-dd'T'HH:mm:ss.SSSX"} as :number {unit: "milliseconds"}))[-1]

Каждая измененная дата преобразуется в дату и время (добавьте «Z», поскольку указанные даты не имеют информации о часовом поясе, а localdatetime не приводится к числу), затем в количество миллисекунд, а затем упорядочивается в порядке возрастания. Селектор [-1] берет последний элемент с максимальной датой.

Выход {"modifiedDate":"2018-07-01T03:23:00.654"}

person Clinton Murdoch    schedule 01.03.2018