从sqlite android中存储为字符串的数据中获取月份

从sqlite android中存储为字符串的数据中获取月份,android,sqlite,date,Android,Sqlite,Date,我从用户那里获取日期,并将其存储在数据库中。例如,我在数据库中的日期看起来是“2014年9月22日”。现在我只想从那个日期算起一个月(九月)。我怎么能得到这个 我的代码是 public ArrayList<String> getMonths(){ String SELECT_MON = "select strftime('%m'," + Diary_DBHandler.PERSONAL_DATE + ") from " + Diary_DBHandle

我从用户那里获取日期,并将其存储在数据库中。例如,我在数据库中的日期看起来是“2014年9月22日”。现在我只想从那个日期算起一个月(九月)。我怎么能得到这个

我的代码是

public ArrayList<String> getMonths(){
    String SELECT_MON = "select strftime('%m',"
            + Diary_DBHandler.PERSONAL_DATE + ") from " + Diary_DBHandler.TABLE_PERSONAL + ";";
    Cursor c = database.rawQuery(SELECT_MON, null);
    c.moveToFirst();
    ArrayList<String> mon=new ArrayList<String>();
    if (c != null)
    {
         while(!c.isAfterLast()) {
             System.out.println(mon);
            mon.add(c.getString(0));
            c.moveToNext(); 
         }
   c.close();
 }
return mon;
}
public ArrayList getMonths(){
String SELECT_MON=“选择strftime('%m',”
+来自“+Diary_DBHandler.TABLE_PERSONAL+”;”的日记(daily_DBHandler.PERSONAL_DATE+);
游标c=database.rawQuery(选择\u MON,null);
c、 moveToFirst();
ArrayList mon=新的ArrayList();
如果(c!=null)
{
而(!c.isAfterLast()){
系统输出打印项次(周一);
mon.add(c.getString(0));
c、 moveToNext();
}
c、 close();
}
返回星期一;
}
您可以使用
SimpleDataFormat
获取对象。您的字符串(“22/09/2014”)的模式是
dd/MM/yyyy

Date date = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH).parse(string);
从您可以构建对象的日期开始

从中,您可以轻松提取月份,使用

 cal.get(Calendar.MONTH)

下面是一个将字符串日期转换为日期格式的示例

String dateString = "03/26/2012 11:49:00 AM";
    SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss aa");
    Date convertedDate = new Date(); 
    try { 
        convertedDate = dateFormat.parse(dateString);
    } catch (ParseException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
    } 
    System.out.println(convertedDate);
如果您只想要月份,请查看方法
getMonth()


请注意,与字符串日期相比,在DB上存储时间戳(long)更好。

是您的朋友。使用它来解析db字符串,获取其
日历
,然后是从该日历开始的月份。
strftime()
仅适用于格式良好的日期(
2014-09-22
),而不是
22/09/2014
格式,但是如何使用SimpleDatabase中的数据?
String dateString = "03/26/2012 11:49:00 AM";
    SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss aa");
    Date convertedDate = new Date(); 
    try { 
        convertedDate = dateFormat.parse(dateString);
    } catch (ParseException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
    } 
    System.out.println(convertedDate);