我正在开发一个Android应用程序,在其中一个活动中,我根据日期对对象列表进行排序。
我遇到的问题是对象列表按德语区域设置的降序排序。
为了对列表进行排序,我使用以下内容:
Collections.sort(list, new Comparator<Object>() {
@Override
public int compare(MyPOJO obj1, MyPOJO obj2) {
DateFormat format = new SimpleDateFormat("EE MMM dd HH:mm:ss z yyyy");
Date date1, date2;
try {
date1 = format.parse(obj1.getPubDate());
date2 = format.parse(obj2.getPubDate());
return date1.compareTo(date2);
} catch (ParseException e) {
e.printStackTrace();
}
return 0;
}
});
对于英语,对于一个对象,我有以下日期格式: 2015年8月13日14:50:02 EEST 2015
对于德语,以下内容: Thu Aug 13 14:50:02 OESZ 2015
你知道这种行为的根本原因是什么,也许是解决这个问题的方法吗?
答案 0 :(得分:0)
使用字符串对数据进行编码是一种代码气味(称为"Primitive Obsession")
更改getPubDate()
以返回Joda DateTime
并将其表示为自数据存储中的纪元以来的毫秒数。