我要顯示一個頁面只有在滿足以下條件,即Java的日期確認
if(system_date >=start_date){
if(system_date<=End_date){
//Do some thing
}
}
說,例如start_date = 08-03-2011
和end_date = 10-03-2011
。
我無法弄清楚這一點。善意幫助。
我要顯示一個頁面只有在滿足以下條件,即Java的日期確認
if(system_date >=start_date){
if(system_date<=End_date){
//Do some thing
}
}
說,例如start_date = 08-03-2011
和end_date = 10-03-2011
。
我無法弄清楚這一點。善意幫助。
正如OrangeDog所說,我會用Joda Time。
您可以創建一個DateTime
或Instant
的開始日期和結束日期,然後使用類似:
if (startDate.isBeforeNow() && endDate.isAfterNow())
或許
DateTime now = new DateTime(); // Possibly provide time zone etc if you want
if (startDate.compareTo(now) <= 0 && now.compareTo(endDate) <= 0)
甚至:
Interval valid = new Interval(startDate, endDate);
if (valid.containsNow())
基本上你有很多選擇取決於你的確切要求已廢除:)
現在,Joda是標準日期相關類的唯一聲音替代品。除了許多實用功能之外,它遠遠優越並且更易於理解。 – Anonymous 2011-03-02 11:08:29
Date now = new Date();
if ((now.after(startDate) || now.equals(startDate)) && ((now.before.endDate) || now.equals(endDate))
{
// do something
}
我同意,約達時間是非常好的,但你必須權衡這個簡單的要求,是否值得另一JAR依賴性。有時你只需要一些簡單的東西。
除非我有一個非常好的理由不採取任何依賴關係,否則只要我有很多*任何*日期/時間工作要做,就會包括Joda。額外的jar文件的成本與擁有更好設計的API的可讀性好處有什麼關係? – 2011-03-02 11:24:41
@Jon - 我同意,但如果規定的要求是唯一需要的日期/時間工作,我可能會忍不住要求。 – duffymo 2011-03-02 12:14:08
除了我們已經看到有解析涉及 - 使用Joda的線程安全格式化器更容易完成,等等...... – 2011-03-02 12:16:18
如果你不想使用外部的lib,你可以使用Calendar
的setTime()
創建日曆出一個給定的日期,然後使用compareTo
來比較兩個日曆實例。
Calendar start = Calendar.getInstance();
start.setTime(startDate);
Calendar current = Calendar.getInstance();
current.setTime(systemDate);
Calendar end = Calendar.getInstance();
end.setTime(endDate);
if (current.compareTo(start) > 0 && current.compareTo(end) < 0) {
//Do some thing
}
當然,你必須創建日曆實例時採取時區和語言環境的關懷。
嘗試使用喬達時間。 – OrangeDog 2011-03-02 10:40:50
你的實際問題是什麼?解析日期?編寫比較邏輯? – 2011-03-02 10:53:21
其實我從dd-MM-yyyy格式的數據庫中獲取開始日期和結束日期,並且必須與系統日期進行比較 – SHV 2011-03-02 11:23:01