Предполагая, что даты являются строками, так как они выглядят в формате гггг-ММ-дд, они могут быть отсортированы лексикографически.
def udbmslList=[
[133, "2011-11-30 00:00:00.0"],
[141, "2011-11-29 00:00:00.0"],
[132, "2011-11-28 00:00:00.0"],
[11, "2011-12-03 00:00:00.0"],
[119, "2011-12-02 00:00:00.0"],
[182, "2011-12-01 00:00:00.0"],
[12, "2011-12-04 00:00:00.0"]
]
// Get rid of the timestamp part of the date and convert into a map.
def result = udbmslList.collectEntries {
[(it[0]): it[1].split()[0]]
}
// Sort by date lexicographically.
result.sort { it.value }
assert result == [
132: "2011-11-28",
141: "2011-11-29",
133: "2011-11-30",
182: "2011-12-01",
119: "2011-12-02",
11: "2011-12-03",
12: "2011-12-04"
]
Редактировать : Если даты являются Date
объектами, вы можете сначала отсортировать список по дате, а затем преобразовать его в карту в соответствующем формате:
def result = udbmslList.sort { it[1] }
.collectEntries { [(it[0]): it[1].format('yyyy-MM-dd')] }