Grails 如何在Groovy中检查当前时间是否介于startTime和endTime之间

Grails 如何在Groovy中检查当前时间是否介于startTime和endTime之间,grails,groovy,Grails,Groovy,如何检查currentTime是否介于startTime和endTime之间。不幸的是,我的域类必须使用startTime和endTime作为字符串 更新: 时间就是时间,例如6点 endTime就是时间,例如18:00显而易见的方法是将两个字符串解析为我个人喜欢的任何日期/时间表示形式,然后将当前日期/时间与之进行比较。你试过了吗?你在哪里脱臼了?如果问题是它们是时间而不是日期/时间值,那么Joda time的类就是您想要的。顺便说一句,我们还不清楚为什么你的域表示需要是字符串——你应该让你的

如何检查currentTime是否介于startTime和endTime之间。不幸的是,我的域类必须使用startTime和endTime作为字符串

更新:

时间就是时间,例如6点
endTime就是时间,例如18:00

显而易见的方法是将两个字符串解析为我个人喜欢的任何日期/时间表示形式,然后将当前日期/时间与之进行比较。你试过了吗?你在哪里脱臼了?如果问题是它们是时间而不是日期/时间值,那么Joda time的类就是您想要的。顺便说一句,我们还不清楚为什么你的域表示需要是字符串——你应该让你的域表示成为最自然的一种,并在你绝对必须的边界处将其转换为文本表示


我强烈建议您不要使用某种静态调用来获取当前日期和时间。相反,使用依赖注入注入当前时间服务,就像注入任何其他依赖一样-然后可以使用测试中控制的假时钟对其进行单元测试,并注入一个真正的实现,它可以使用System.currentTimeMillis或您想要的任何产品。

显而易见的方法是将两个字符串解析为您个人喜欢的任何日期/时间表示形式,然后将当前日期/时间与之进行比较。你试过了吗?你在哪里脱臼了?如果问题是它们是时间而不是日期/时间值,那么Joda time的类就是您想要的。顺便说一句,我们还不清楚为什么你的域表示需要是字符串——你应该让你的域表示成为最自然的一种,并在你绝对必须的边界处将其转换为文本表示


我强烈建议您不要使用某种静态调用来获取当前日期和时间。相反,使用依赖注入注入当前时间服务,就像注入任何其他依赖一样-然后可以使用测试中控制的假时钟对其进行单元测试,并注入一个真正的实现,它可以使用System.currentTimeMillis或任何您想要用于生产的东西。

使用Groovy将字符串解析为java.util.Date,然后将currentTime与Date.before和Date.after进行比较。如有必要,使用Date.getTime转换为unix时间戳。

使用Groovy将字符串解析为java.util.Date,然后将currentTime与Date.before和Date.after进行比较。如有必要,使用Date.getTime转换为unix时间戳。

将startTime和endTime解析为日期,然后将startTime中的currentTime..endTime解析为日期,然后将startTime和endTime解析为startTime..endTime