在我的Android应用程序中,我需要找到哪个日期更大或更小。我使用了以下代码。这段代码运行良好,但有时它显示错误的输出。帮助
String strDate1 = "3/9/2013";
String strDate2 = "4/6/2013";
SimpleDateFormat sdf = new SimpleDateFormat( "m/d/yyyy" );
java.util.Date d1;
java.util.Date d2;
try {
d1 = sdf.parse( strDate1 );
d2 = sdf.parse( strDate2 );
if ( d1.after(d2))
{
System.out.println( "d1 is after d2" );
}
else if ( d1.before(d2) )
{
System.out.println( "d1 is before d2" );
}
else
{
System.out.println( "d1 is equal to d2" );
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
对于上面的代码,我得到输出为“d1在d2之后”。但真实的是“d1在d2之前”。如果我对此有任何错误,请提示。
答案 0 :(得分:5)
SimpleDateFormat sdf = new SimpleDateFormat( "M/d/yyyy" );
m
是几小时的分钟
M
是一年中的一个月
答案 1 :(得分:0)
尝试将日期格式更改为以下
SimpleDateFormat sdf = new SimpleDateFormat( "M/d/yyyy" );
答案 2 :(得分:0)
您需要使用M
,而不是m
提供的分钟数。
SimpleDateFormat sdf = new SimpleDateFormat( "M/d/yyyy" );
答案 3 :(得分:0)
SimpleDateFormat这表示小m是分钟,大写M是月份,所以尝试改变它。