如何檢查currentTime是否在startTime和endTime之間。不幸的是,我的域類必須使用startTime和endTime作爲字符串。如何檢查當前時間是否在Groovy的startTime和endTime之間
更新:
statTime只是例如,時間6.00 結束時間只是時間如18:00
如何檢查currentTime是否在startTime和endTime之間。不幸的是,我的域類必須使用startTime和endTime作爲字符串。如何檢查當前時間是否在Groovy的startTime和endTime之間
更新:
statTime只是例如,時間6.00 結束時間只是時間如18:00
嘛顯而易見的方法是兩個字符串解析爲任何日期/時候你想代表(我個人更喜歡Joda Time),然後比較當前日期/時間這一點。你嘗試過嗎?你從哪裏脫落?如果問題是他們時間而不是日期/時間值,Joda時間的LocalTime
類是你想要的。 (您不清楚爲什麼您的代表需要字符串,順便說一句 - 您應該使您的域代表最自然,並將其轉換爲文本表示,以便在絕對必須的邊界處IMO)。
我強烈建議你不是使用某種靜態調用來獲取當前的日期和時間。相反,使用依賴注入來注入一個「當前時間服務」,就像你使用其他任何依賴項一樣 - 然後你可以用測試中控制的「假時鐘」對它進行單元測試,並注入一個真正的實現(可以使用System.currentTimeMillis
或無論你想要什麼)生產。
使用Groovy java.util.Date.parse(String format, String input)來分析字符串到java.util.Date然後比較currentTime的與Date.before()和Date.after()。如果需要,使用Date.getTime()將其轉換爲unix時間戳爲long。
將startTime和endTime分析爲日期然後currentTime in startTime..endTime