我有一个名为 Event 的 Grails 域类。它有一个startTime
和一个endTime
。这两个字段将表示为什么对象?我需要它们持久保存到数据库中,所以请记住这一点。我不需要对特定日期做任何事情,只需要一天中的特定时间,我可能需要做一些时间计算(确保 endTime 在 startTime 之后等)
java.sql.Time
那么......使用包中的东西groovy.time
、整数或其他东西会更容易吗?谢谢!
我有一个名为 Event 的 Grails 域类。它有一个startTime
和一个endTime
。这两个字段将表示为什么对象?我需要它们持久保存到数据库中,所以请记住这一点。我不需要对特定日期做任何事情,只需要一天中的特定时间,我可能需要做一些时间计算(确保 endTime 在 startTime 之后等)
java.sql.Time
那么......使用包中的东西groovy.time
、整数或其他东西会更容易吗?谢谢!
我喜欢使用JODA 时间插件。如果您不必在计算方式上做太多事情,标准的 Date 对象可以正常工作。
如果数据库允许datetime
用作这两个列的数据类型,那么我更喜欢Groovy Date ,尽管您可以使用 Joda Time 插件获得灵活性。
日期将是纪元,并且常规日期提供了一种从字符串解析日期/时间的简单机制。例如,如果startTime
orendTime
被表示为一个字符串13:45:32
(来自视图或来自 REST 调用)表示1:45 PM
时间,那么这个字符串可以很容易地解析为 Date 为:
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 日]。