Легче всего было бы; учитывая Person класс:
public class Person {
String name
Date born
String toString() {
name
}
}
Мы можем составить список из них:
import groovy.time.*
def people = use(TimeCategory) {
[ new Person(name: 'p1', born: new Date() - 4.days),
new Person(name: 'p2', born: new Date() - 2.days),
new Person(name: 'p3', born: new Date() - 4.days),
new Person(name: 'p4', born: new Date() - 2.days),
new Person(name: 'p5', born: new Date() - 2.days) ]
}
, а затем просто использовать Date.format
:
people.groupBy{ it.born.format('dd/MM/yyyy') }
Если born
должен просто хранить датировать человек, а не время, вы можете изменить Person
на:
public class Person {
String name
Date born
void setBorn(Date born) {
this.born = born.clearTime()
}
String toString() {
name
}
}
И тогда вы можете просто сделать:
people.groupBy{ it.born }
Чтобы получить Map
с Date
объектов в качестве ключей:
[ Sun Feb 02 00:00:00 GMT 2014:[p1, p3],
Tue Feb 04 00:00:00 GMT 2014:[p2, p4, p5] ]