我有这个:
@DatabaseField(columnName = "DATE_TRAVEL", dataType = DataType.DATE_STRING,
format = "dd-MM-yyyy")
public Date dateTravel;
当我使用这个
时 Where<RoadTravelTableFile, Integer> queryBuilder = getHelper()
.getRoadTravelTableFileIntegerDao().
queryBuilder().orderBy("DATE_TRAVEL",false).where().eq("main_id", Integer.parseInt(s));
结果是
30-09-14
16-11-14
14年12月10日
15年12月9日
14年9月10日
它排序但是,它认为它是一个字符串..有这个方法吗?
答案 0 :(得分:3)
请尝试这种方式,希望这有助于您解决问题。
class StringAsDateComparator implements Comparator<String>
{
SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy");
public int compare(String lhs, String rhs)
{
return dateFormat.parse(lhs).compareTo(format.parse(rhs));
}
}
Collections.sort(list, new StringDateComparator());
尝试实现一个Comparator对象,在比较它们之前将字符串转换为日期,SimpleDateFormat对象将执行转换。
答案 1 :(得分:1)
您可以获取数据,然后保存到列表中,并使用下面的代码将您的日期(字符串)解析为毫秒,然后对其进行排序并显示。
Date date = new SimpleDateFormat("dd-MM-yyyy", Locale.ENGLISH).parse(input);
long milliseconds = date.getTime();