Java 正确格式化日期
您好Java 正确格式化日期,java,android,string,date,Java,Android,String,Date,您好stackoverflowers,假设我有一个数据库,其中一行充满了日期,好吗 问题1: 像这个: 2013-06-01 所以我想把这个日期转换成字符串 输入: 2013年3月1日星期二00:00:00 EET 例如。。 那么,我如何将日期的输出变成这样: 2013年3月?? 这是我的密码: date = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH) .parse(mCursor.
stackoverflowers
,假设我有一个数据库,其中一行充满了日期,好吗
问题1:
像这个:
2013-06-01
所以我想把这个日期转换成字符串
输入:
2013年3月1日星期二00:00:00 EET
例如。。
那么,我如何将日期的输出变成这样:
2013年3月??
这是我的密码:
date = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH)
.parse(mCursor.getString(mCursor
.getColumnIndex(KEY_AVAILABILITYDATE)));
list.add(date);
问题2(我想问题1必须先解决):
当然,我想对添加日期的列表进行排序
因此,我运行以下代码:
Collections.sort(list);
但坦率地说,它排序不正确!这是好坏参半的——都是错的
谢谢你的阅读,我希望这很容易
所有代码:
但是现在结果都混在一起了!gridview很大,我只看到:
2013年9月2013年6月2013年7月
每行。我能做什么?谢谢您需要构建一个比较器来比较两个日期: 下面是它的代码:
public static Comparator<Date> dateComparator = new Comparator<Date>()
{
public int compare(Date date1, Date date2)
{
return date1.compareTo(date2);
}
};
这就是如何使用数组而不是集合
Date[] arrayDates = new Date[list.size()];
arrayDates = list.toArray(arrayDates);
Arrays.sort(arrayDates, dateComparator);
1) 使用“MMM yyyy”
作为正则表达式,如下所示:
public class Main {
public static void main(String args[]) {
Date now = new Date();
SimpleDateFormat format = new SimpleDateFormat("MMM yyyy", Locale.ENGLISH);
System.out.println(format.format(now));
}
}
>2013年9月
2) 无需将比较器与compareTo()
配合使用,因为Collections.sort(list)
默认情况下应按时间顺序对日期列表进行排序
最有可能的是,问题出在您没有显示的代码中的某个地方,但我不能确定,因为您没有模拟数据库,所以我无法在Eclipse中运行您的代码
来源:因此,在持续进行了一天的
修复后,我发现问题发生在GridViewStickyHeaders
-外部库中
问题发生在我滚动时!结果都搞砸了
谢谢你的贡献!你的帮助真的帮助了我!谢谢=)收藏将为您完成此任务,您的列表将被排序。只需填写列表并调用最后一行。虽然代码不同,但我得到了不同的输出,但完全没有正确排序。如果使用正确的比较语句,comparator不会给出错误的结果。另一种方法是使用数组而不是集合,只是为了确定在哪里添加代码?Collections.sort(list,dateComparator);在循环的内部还是外部?在循环的外部,因为您正在传递引用,它当然会重新排列您的列表。
public static Comparator<Date> dateComparator = new Comparator<Date>()
{
public int compare(Date date1, Date date2)
{
return date1.compareTo(date2);
}
};
Collections.sort(list,dateComparator);
Date[] arrayDates = new Date[list.size()];
arrayDates = list.toArray(arrayDates);
Arrays.sort(arrayDates, dateComparator);
public class Main {
public static void main(String args[]) {
Date now = new Date();
SimpleDateFormat format = new SimpleDateFormat("MMM yyyy", Locale.ENGLISH);
System.out.println(format.format(now));
}
}