Grails 如何在不影响域对象值的情况下使用 Date.ClearTime()
Grails How to use Date.ClearTime() without affect on Domain Object Value
我正在尝试使用以下代码获取没有时间的日期。
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
当我在 originalDate 对象中使用 clearTime() 时,personInstance 如何更新。
让我知道如何在此处使用 clearTime() 而不更改域实例。
由于 Date.clearTime()
修改了基础实例,您应该创建它的副本:
Date originalDate = personInstance?.datetime
if( !originalDate ) return
Date date = new Date( originalDate.time ).clearTime()
dateTimeSet << date
我正在尝试使用以下代码获取没有时间的日期。
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
当我在 originalDate 对象中使用 clearTime() 时,personInstance 如何更新。
让我知道如何在此处使用 clearTime() 而不更改域实例。
由于 Date.clearTime()
修改了基础实例,您应该创建它的副本:
Date originalDate = personInstance?.datetime
if( !originalDate ) return
Date date = new Date( originalDate.time ).clearTime()
dateTimeSet << date