Grails Как использовать Date.ClearTime () без влияния на значение объекта домена - PullRequest
0 голосов
/ 20 ноября 2018

Я пытаюсь получить дату без времени, используя следующий код.

List<Person> personList = Person.createCriteria().list(){
    eq("deleted", false)
    order("datetime","desc")
}

def dateTimeSet = new HashSet()

personList.each { personInstance ->

    Date originalDate = personInstance?.datetime

    println("Before Date In Instance: "+personInstance?.datetime)

    if(!dateTimeSet.contains(originalDate?.clearTime())){
        dateTimeSet.add(originalDate?.clearTime())
    }

    println("After Date In Instance: "+personInstance?.datetime)

}

ВЫХОД:

Before Date In Instance: Thu Sep 20 18:34:11 IST 2018
After Date In Instance: Thu Sep 20 00:00:00 IST 2018

Как обновляется personInstance, когда я использую clearTime () вoriginalDate объект.

Дайте мне знать, как использовать clearTime () здесь без изменений в экземпляре домена.

1 Ответ

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

Поскольку Date.clearTime() изменяет базовый экземпляр, вы должны создать его копию:

Date originalDate = personInstance?.datetime
if( !originalDate ) return
Date date = new Date( originalDate.time ).clearTime()
dateTimeSet << date
...