try {
Date sysDate = new SimpleDateFormat("dd/mm/yyyy").parse(_sysDate);
Date userDate = new SimpleDateFormat("dd/mm/yyyy").parse(_userDate);
if (userDate.compareTo(sysDate) > 0)
return false;
else
return true;
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
以上是我的以下代码片段,用于检查两个更高或更高的日期。 当我给予: sysdate = 12/9/2012和userdate = 11/9/2012或10/8/2012或15/9/2011它提供了正确的输出
但是当我给予时: sysdate = 12/9/2012和userdate = 13/8/2012或15/7/2012或16/6/2012它提供的输出不正确。 根据我的分析,如果我选择1月12日到8月12日之间的任何一个月,并选择day_of_month(即0,1,2,...,31)超过当前day_of_month(在这种情况下为12) ),我总是得到一个不正确的输出。
请建议任何可能的解决方案。
答案 0 :(得分:4)
问题是模式应为“dd / MM / yyyy”(月份为大写“MM”)而不是“dd / mm / yyyy”(小“mm”表示分钟)。
所以,应该如下 -
try {
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
Date sysDate = df.parse(_sysDate);
Date userDate = df.parse(_userDate);
//...
答案 1 :(得分:1)
try {
Date sysDate = new SimpleDateFormat("dd/MM/yyyy").parse(_sysDate);
Date userDate = new SimpleDateFormat("dd/MM/yyyy").parse(_userDate);
if (userDate.compareTo(sysDate) > 0)
return false;
else
return true;
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
日期模式错误 dd / MM / yyyy 而不是 dd / mm / yyyy 。
答案 2 :(得分:-3)
请参阅此dd/MM/yyyy
的数据格式更改,而不是dd / mm / yyyy。
http://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html