将String转换为日期格式以添加到字符串arraylist

时间:2015-07-03 14:17:24

标签: android arraylist simpledateformat

我从我的SQLite数据库中获取以下日期,该数据库按以下格式下拉为字符串' 03-07-2015'。

我希望此格式能够像这样显示2015年7月3日星期五'我正在使用SimpleDateFormat这样做,然后我需要将它传递给一个ArrayList,我不能让它工作,对我所做错的任何建议都会非常感激。

String dayNumberSuffix = getDayOfMonthSuffix(3);
SimpleDateFormat sdf = new SimpleDateFormat("EEEE dd'" + dayNumberSuffix + "' MMMM yyyy");
String d = sdf.format(cursor.getString(1));
dates.add(d); // ArrayList<String>

String getDayOfMonthSuffix(final int n) {
    switch (n % 10) {
        case 1:  return "st";
        case 2:  return "nd";
        case 3:  return "rd";
        default: return "th";
    }
}

我尝试了一些不同的变体,但我相信上面的变体最接近。

1 个答案:

答案 0 :(得分:2)

您需要解析您从数据库获取的解析03-07-2015中的日期并对其进行格式化:

String dayNumberSuffix = getDayOfMonthSuffix(3);
SimpleDateFormat parseSDF = new SimpleDateFormat("dd-MM-yyyy");

SimpleDateFormat sdf = new SimpleDateFormat("EEEE dd'" + dayNumberSuffix + "' MMMM yyyy");
Date date = parseSDF.parse(cursor.getString(1));
String d = sdf.format(date);
dates.add(d); // ArrayList<String>

应该这样做