Java日期验证

时间:2011-03-02 10:38:39

标签: java

只有在满足以下条件时才显示页面,即

if(system_date >=start_date){
 if(system_date<=End_date){
  //Do some thing
 }
}

比如说start_date = 08-03-2011end_date = 10-03-2011

我无法弄清楚这一点。请帮助。

4 个答案:

答案 0 :(得分:3)

Date now = new Date();
if ((now.after(startDate) || now.equals(startDate)) && ((now.before.endDate) || now.equals(endDate))
{
    // do something
}

我同意Joda Time非常好,但你必须权衡这个简单的要求是否值得另一个JAR依赖。有时你只需要简单的东西。

答案 1 :(得分:1)

正如OrangeDog建议的那样,我会使用Joda Time

您可以为开始日期和结束日期创建DateTimeInstant,然后使用以下内容:

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())

基本上,根据您的具体要求,您有很多选择:)

答案 2 :(得分:0)

答案 3 :(得分:0)

如果您不想使用外部库,可以使用Calendar的{​​{1}}在指定日期之外创建日历,然后使用setTime()来比较两个日历实例。

compareTo

当然,在创建Calendar实例时,您必须注意时区和区域设置。