我正在尝试根据工作日对某些数据进行排序。我面临的问题是,我得到以下输出: - 周四,周五,周六,周日,周一,周二,周三
虽然我在期待 星期日,星期一,星期二,星期三......
以下是我正在使用的代码
public class DateComperator implements Comparator<Map<String,String>> {
public String sortingView;
public String sortType;
public DateComperator(String sortingView,String sortType){
this.sortingView=sortingView;
this.sortType=sortType;
}
@Override
public int compare(
Map<String,String> o1, Map<String,String> o2) {
Date date1 = null,date2 = null;
String[] formats = {
"MMM-yyyy", "MMM-yyyy",
"MM-dd-yyyy", "MM-dd-yyyy",
"MMM-d-yyyy", "MMM-d-yyyy",
"MM/dd/yyyy", "MM/dd/yyyy",
"MMM/d/yyyy", "MMM/d/yyyy",
"MMM-yy", "MMM-yy",
"MMMM", "MMMM",
"EEEE", "EEEE",
"yyyy", "yyyy",
};
String format="";
for (String parse : formats) {
SimpleDateFormat sdf = new SimpleDateFormat(parse);
try {
sdf.parse(o1.get(sortingView).replaceAll(" ",""));
format=parse;
// System.out.println("Printing the value of " + parse);
break;
} catch (ParseException e) {
}
}
SimpleDateFormat sdf = new SimpleDateFormat(format);
try {
if(sortingView.equalsIgnoreCase("month")){
date1 = sdf
.parse(o1.get(sortingView).replaceAll(" ",""));
date2 = sdf
.parse(o2.get(sortingView).replaceAll(" ",""));
}else{
date1 = sdf
.parse(o1.get(sortingView).replaceAll(" ",""));
date2 = sdf
.parse(o2.get(sortingView).replaceAll(" ",""));
}
} catch (ParseException ex) {
Logger.getLogger(DateComperator.class.getName()).log(Level.SEVERE, null, ex);
}
int i=date1.compareTo(date2);
if(sortType.equalsIgnoreCase("desc")){
return -i;
}else{
return i;
}
}
}
由于使用EEEE格式解析日期对象的值,可能会发生这种情况。并且它使用一些默认日期,例如星期一05月1日00:00:00 IST 1970,并且依此类推。我对此很新。 任何帮助将不胜感激提前感谢。