比较两个日期
我想在我的应用程序中比较两个日期
第一个日期将是今天的日期第二个日期将来自一个数据库
为了保存第二个日期,我的代码如下: (使用明日期以保持简单)
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_YEAR, 1);
Date tomorrow = calendar.getTime();
DateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy");
String tomorrowAsString = dateFormat.format(tomorrow);
所以tomorrowAsString (10-Oct-2015)
存储在我的数据库的表中
在另一种形式中,我正在检索该日期并将其放入字符串中
String steepingDate = (c.getString(3));
我想我需要将该字符串转换为日期格式,然后使用以下命令获取今天的日期;
Calendar calendar = Calendar.getInstance();
Date today = calendar.getTime();
DateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy");
String todayAsString = dateFormat.format(today);
这里是我陷入困境的地方,因为我不知道如何将steepingDate
转换为Date
,然后比较字符串的实际方式是什么,我尝试过在线查看,但有很多不同的方式,我已经尝试过,迄今都没有工作。 我想知道两者中哪一个更加粗糙
编辑:
我已经合并了一些答案并提出以下内容;
do {
String steepingDate = (c.getString(3));
SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy");
Date steepingdate = formatter.parse(steepingDate);
Calendar calendar = Calendar.getInstance();
Date today = calendar.getTime();
if(today.compareTo(steepingdate)>0)
{
CompleteSteeping.add(c.getString(1));
}
i += 1;
}while (c.moveToNext());
然而;
SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy");
Date steepingdate = formatter.parse(steepingDate);
我收到一个错误说明
'Unsparseable date:“java.util.GregorianCalender [time = 1444461352665,areFieldsSet = true,Ienient = true zone = GMT,firstDayOfWeek = 1,minimalDaysInFirstWeek = 1,ERA = 1,YEAR = 2015,MONTH = 9,WEEK_OF_YEAR = 41 ,WEEK_OF_MONTH = 2,DAY_OF_MONTH = 10,DAY_OF_YEAR = 283,DAY_OF_WEEK = 7,DAY_OF_WEEK_IN_MONTH = 2,AM_PM = 0,HOUR = 7,HOUR_OF_DAY = 7,MINUTE = 15,SECOND = 52,微差= 665,ZONE_OFFSET = 0DST_OFFSET = 0 ]“(在偏移量0处)
如果你只是想比较字符串,它看起来像这样:
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_YEAR, 1);
Date tomorrow = calendar.getTime();
DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
String tomorrowAsString = dateFormat.format(tomorrow);
calendar = Calendar.getInstance();
Date today = calendar.getTime();
String todayAsString = dateFormat.format(today);
if(tomorrowAsString.equals(todayAsString))
System.out.println(true);
else
System.out.println(false);
try{
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
String str1 = "9/10/2015";
Date date1 = formatter.parse(str1);
String str2 = "10/10/2015";
Date date2 = formatter.parse(str2);
if (date1.compareTo(date2)<0)
{
System.out.println("date2 is Greater than my date1");
}
}catch (ParseException e1){
e1.printStackTrace();
}
由于我不确定如何将steepingDate转换为日期,因此这里是我陷入困境的地方
您需要使用与您保存的字符串匹配的模式实例化SimpleDateFormat
,并对其进行调用parse
。
然后什么是比较字符串的实际方式,我试过在网上查找,但有很多不同的方法,我已经尝试过,迄今没有任何工作
如果您必须比较日期以了解其中是否小于/大于/等于,则Date包含compareTo方法,如果此Date小于指定的Date,则返回int <0;如果它们相等,则返回int如果此日期更大,则为> 0。
链接地址: http://www.djcxy.com/p/36643.html上一篇: Compare two dates