2011-05-17 52 views
1

出于某种原因,我希望能够添加一个参考日期,如0-0-0,它将代表'无日期'。任何方式做到这一点?并将0/0/0工作?Grails域类日期

回答

2

如果您想要表示“无日期”,请通过将其明确设置为“无日期”来表示“无日期”,Groovy中的“无日期”只需通过为日期变量分配空值来完成。

Date someDate = new Date() 
print someDate //prints current date 
someDate = null 
print someDate //prints null - you can test for that 
1

日期0/0/0是否代表真实的时间点(或间隔)?换句话说,如果你的桌面日历无限延伸到了未来,回到过去,你能找到一个对应于0/0/0的页面吗?如果答案是否定的,那么这不是有效的Date值,因此不能被分配给Date变量。另一方面,如果0/0/0代表真实的时间点,例如,如果0/0 /元年公元的第一天,那么这样的事情可能会奏效

import static java.util.Calendar.* 
def cal = Calendar.instance 
cal[YEAR] = -1900 
cal[MONTH] = 0 
cal[DAY_OF_MONTH] = 1 
cal.clearTime() 

Date dayZero = cal.time 

然而,我的直觉是,这是一个坏主意,并有一个更好的解决潜在的问题,这个怪异的日期使用。