【发布时间】:2018-09-05 10:43:11
【问题描述】:
我无法将日期作为字符串进行比较。我需要遍历一个集合并将每个对象的日期值与作为参数传递的 2 个日期进行比较。日期都存储为字符串,并且需要以这种方式保存。
众所周知,日期将全部格式化为YYYY-MM-DD。下面是我的意思的一个简单例子。谢谢大家!
public ArrayList<Object> compareDates(String dateOne, String dateTwo) {
for(Object object : objectCollection) {
String objectDate = object.getDate();
if(objectDate.equals(dateOne) || objectDate.equals(dateTwo)) { // Unsure of how to determine if the objects date is inbetween the two given dates
//add object to collection
}
}
return collection;
}
【问题讨论】:
-
为什么要将日期作为字符串进行比较?有很多工具可以轻松准确地比较日期,为什么不使用这些工具呢?
-
在比较之前转换为日期对象是唯一合理的方法
-
如果你真的想坚持
Strings,那么用"-"分割它们并比较分离的值。您可能必须将它们转换为int然后... -
也许您可以使用
SimpleDateFormat从您的字符串中制作具体的Date对象并进行比较。 -
上面的例子看起来并不完整,即它不包含
objectCollection变量的定义。就像@Stultuske 说的那样,为什么将它们作为字符串进行比较?您可以将它们解析为可比较的Calendars 或Dates。
标签: java string string-comparison