你好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);
但坦率地说,它没有正确排序!它是混合的 - 日期所有错误。
感谢阅读,我希望它很容易!
所有代码:
public ArrayList<Date> GetValues() {
ArrayList<Date> list = new ArrayList<Date>();
Date date;
if (mCursor.moveToFirst()) {
while (mCursor.isAfterLast() == false) {
try {
date = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH)
.parse(mCursor.getString(mCursor
.getColumnIndex(KEY_AVAILABILITYDATE)));
list.add(date);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mCursor.moveToNext();
}
}
Collections.sort(list);
return list;
}
在失去一些希望后,我决定向您展示所有代码:
代码:
Database DbHelper = new Database(
this.getSherlockActivity()).open();
ArrayList<Date> headers = DbHelper.GetValues();
HashSet<Date> hs = new HashSet<Date>();
hs.addAll(headers);
headers.clear();
headers.addAll(hs);
Collections.sort(header,dateComparator);
Collections.reverse(headers);
我正在使用第 3 方库: StickyGridHeadersGridView所以这是我的适配器:
@Override
public int getCountForHeader(int header) {
// TODO Auto-generated method stub
return 1;
}
@Override
public int getNumHeaders() {
// TODO Auto-generated method stub
return headers.size();
}
@Override
public View getHeaderView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
if (convertView == null) {
convertView = inflater.inflate(R.layout.header, parent, false);
TextView tvheader = (TextView) convertView
.findViewById(R.id.tvheader);
String headertitle = headers.get(position).toString();
if (headertitle.contains("01 00:00:00 EET")) {
headertitle = headertitle.replace("01 00:00:00 EET", "");
}
if (headertitle.contains("01 00:00:00 EEST")) {
headertitle = headertitle.replace("01 00:00:00 EEST", "");
}
if (headertitle.contains("02 00:00:00 EET")) {
headertitle = headertitle.replace("02 00:00:00 EET", "");
}
if (headertitle.contains("02 00:00:00 EEST")) {
headertitle = headertitle.replace("02 00:00:00 EEST", "");
}
if (headertitle.contains("15 00:00:00 EET")) {
headertitle = headertitle.replace("15 00:00:00 EET", "");
}
// days
if (headertitle.contains("Mon")) {
headertitle = headertitle.replace("Mon", "");
}
if (headertitle.contains("Tue")) {
headertitle = headertitle.replace("Tue", "");
}
if (headertitle.contains("Wed")) {
headertitle = headertitle.replace("Wed", "");
}
if (headertitle.contains("Thu")) {
headertitle = headertitle.replace("Thu", "");
}
if (headertitle.contains("Fri")) {
headertitle = headertitle.replace("Fri", "");
}
if (headertitle.contains("Sat")) {
headertitle = headertitle.replace("Sat", "");
}
if (headertitle.contains("Sun")) {
headertitle = headertitle.replace("Sun", "");
}
// months
if (headertitle.contains("Jan")) {
headertitle = headertitle.replace("Jan", "January");
}
if (headertitle.contains("Feb")) {
headertitle = headertitle.replace("Feb", "February");
}
if (headertitle.contains("Mar")) {
headertitle = headertitle.replace("Mar", "March");
}
if (headertitle.contains("Apr")) {
headertitle = headertitle.replace("Apr", "April");
}
if (headertitle.contains("Jun")) {
headertitle = headertitle.replace("Jun", "June");
}
if (headertitle.contains("Jul")) {
headertitle = headertitle.replace("Jul", "July");
}
if (headertitle.contains("Aug")) {
headertitle = headertitle.replace("Aug", "August");
}
if (headertitle.contains("Sep")) {
headertitle = headertitle.replace("Sep", "September");
}
if (headertitle.contains("Oct")) {
headertitle = headertitle.replace("Oct", "October");
}
if (headertitle.contains("Nov")) {
headertitle = headertitle.replace("Nov", "November");
}
if (headertitle.contains("Dec")) {
headertitle = headertitle.replace("Dec", "December");
}
tvheader.setText(headertitle);
}
然而现在结果都混在一起了!网格视图很大,我只看到:
2013 年 9 月 2013 年 6 月 2013 年 7 月
在每一行。我能做些什么 ?谢谢