grails - Grails 如何在不影响域对象值的情况下使用 Date.ClearTime()
问题描述
我正在尝试使用以下代码快速获取日期。
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
推荐阅读
- .htaccess - Htaccess 在条件下用问号重写
- javascript - 表构建后注入锚标记
- java - Scala:反射 API 调用具有相同名称的两种方法之一
- dataframe - 如何在 Julia 中重塑和绘制 DataFrame?
- angular - input parameter to child component is not getting value even though I can see it in the elements
- python - How to change Data Frame type from object to string?
- android - How to Run for Periodic Detections with Android Beacon Library
- java - Java BigDecimal.remainder() 的问题 - 不合理且不准确的返回
- node.js - 是否有 Google Cloud Run node.js 包/示例/文档?
- xml - XML 字符集转换工具