这是我的代码
boolean isWithinRange(String d)
{
boolean withinDate = false;
try
{
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = dateFormat.parse(d);
withinDate = !(date.before(startDate) || date.after(endDate));
}
catch (ParseException parseException)
{
}
return withinDate;
}
输入项
2015-11-26
2015-11-26-复制
两者都返回true,但我要求的是“ 2015-11-26”应该为true,而“ 2015-11-26-复制”应该为false。
这是因为SimpleDateFormat会很高兴地解析“ 2015-11-26”,而忽略了“-复制”部分。
该javadoc的状态:
从给定字符串的开头解析文本以产生日期。该方法可能不会使用给定字符串的整个文本。
要检测是否已使用整个字符串,请改用parse(String source, ParsePosition pos)
方法。ParsePosition告诉您解析在哪里停止。只需将其与原始日期字符串的长度进行比较即可。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句