使用时间作为Grails域类字段

时间:2013-06-29 23:22:29

标签: grails time grails-domain-class

我有一个名为Event的Grails域类。它有一个startTime和一个endTime。这两个字段代表什么对象?我需要他们坚持到数据库,所以记住这一点。我不需要对特定日期做任何事情,只需要一天中的特定时间,我可能需要做一些时间计算(确保endTime在startTime之后等等​​)

那么......在java.sql.Time包,整数或其他东西中使用groovy.time会更容易吗?谢谢!

2 个答案:

答案 0 :(得分:2)

我喜欢使用JODA time plugin。 虽然标准的Date对象可以正常工作,但如果你不必在计算方面做太多。

答案 1 :(得分:1)

如果数据库允许使用datetime作为这两列的数据类型,那么我更喜欢Groovy Date,尽管您可以灵活地使用Joda Time插件。

日期将是the epoch,并且groovy日期提供了一种从String解析日期/时间的简单机制。例如,如果startTimeendTime表示为13:45:32(来自视图或来自REST调用)表示1:45 PM时间的字符串,则可以轻松地将此字符串解析为日期为:

Date.parse('HH:mm:ss', '13:45:32')
//Thu Jan 01 13:45:32 EST 1970

相反,从持久层获取日期后,您可以比较:

endTime.after(startTime)

最终将在时间(HH:mm:ss)上进行比较,因为在所有情况下,日期始终是时期[1970年1月1日]。