Java Ormlite:如何按数据类型为字符串的日期排序?sort在哪里会将其视为日期而不是字符串?
我有这个:Java Ormlite:如何按数据类型为字符串的日期排序?sort在哪里会将其视为日期而不是字符串?,java,android,sql,ormlite,Java,Android,Sql,Ormlite,我有这个: @DatabaseField(columnName = "DATE_TRAVEL", dataType = DataType.DATE_STRING, format = "dd-MM-yyyy") public Date dateTravel; 当我用这个的时候 Where<RoadTravelTableFile, Integer> queryBuilder = getHelper() .getRoadTravelTab
@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));
其中queryBuilder=getHelper()
.getRoadTravelTableFileIntegerDao()。
queryBuilder().orderBy(“DATE\u TRAVEL”,false).where().eq(“main\u id”,Integer.parseInt(s));
结果是
30-09-14
16-11-14
12-10-14
12-09-15
09-10-14
它对它进行了排序,但它认为它是一个字符串。。有办法吗?您可以获取数据,然后保存到列表中,然后使用下面的代码将日期(字符串)解析为毫秒,然后对其排序并显示
Date date = new SimpleDateFormat("dd-MM-yyyy", Locale.ENGLISH).parse(input);
long milliseconds = date.getTime();
您可以获取数据,然后保存到列表中,并使用下面的代码将日期(字符串)解析为毫秒,然后对其排序并显示
Date date = new SimpleDateFormat("dd-MM-yyyy", Locale.ENGLISH).parse(input);
long milliseconds = date.getTime();
试试这种方法,希望这能帮助你解决问题。
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());
类StringAsDateComparator实现Comparator
{
SimpleDateFormat=新的SimpleDateFormat(“dd-MM-yyyy”);
公共整数比较(字符串lhs、字符串rhs)
{
return dateFormat.parse(lhs).compareTo(format.parse(rhs));
}
}
sort(list,new StringDateComparator());
尝试实现一个Comparator对象,在比较字符串之前将字符串转换为日期,SimpleDataFormat对象将执行转换。尝试这种方法,希望这将帮助您解决问题。
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());
类StringAsDateComparator实现Comparator
{
SimpleDateFormat=新的SimpleDateFormat(“dd-MM-yyyy”);
公共整数比较(字符串lhs、字符串rhs)
{
return dateFormat.parse(lhs).compareTo(format.parse(rhs));
}
}
sort(list,new StringDateComparator());
尝试实现一个Comparator对象,在比较字符串之前将字符串转换为日期,SimpleDataFormat对象将执行转换。好的,一个想法是使用“yyy-MM-dd”这将起作用,但这里的本地格式是dd-mm-yyyy。@ElliottFrisch我已经按照您的建议做了,只需使用区域设置转换代码将其传输回dd-mm-yyyy即可。干杯。好的,一个想法是使用“yyyy-MM-dd”,这会起作用,但这里的本地格式是dd-MM-yyyy。@ElliottFrisch我已经按照你的建议做了,只需使用区域设置转换代码将其传输回dd-MM-yyyy。干杯。我将我的ormlite查询转换为光标。所以我不能在我的场景中使用它。我将我的ormlite查询转换为游标。所以我不能在我的场景中使用它。我将我的ormlite查询转换为游标。所以我不能在我的场景中使用它。我将我的ormlite查询转换为游标。所以我不能在我的场景中使用这个。