从sqlite android中存储为字符串的数据中获取月份
我从用户那里获取日期,并将其存储在数据库中。例如,我在数据库中的日期看起来是“2014年9月22日”。现在我只想从那个日期算起一个月(九月)。我怎么能得到这个 我的代码是从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
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);