在安卓数据库存储时间的时候,直接存储的New Date(),然而当读取数据库的时候,读出来的字符串为Fri Jun 22 19:50:49 GMT+08:00 2018,当然我们想要的是18-06-22 21:41
接下来来说一下,通过读取数据库获得的字符串时间,进行格式化,进而转化为我们想要的格式:
通过游标来获得的时间数据:cursor.getString(2);返回的是一个字符串:Fri Jun 22 19:50:49 GMT+08:00 2018
我们先把这个字符串转化为Date格式:
public static Date formatDate2(String dateStr) {
String[] aStrings = dateStr.split(" ");
// 5
if (aStrings[1].equals("Jan")) {
aStrings[1] = "01";
}
if (aStrings[1].equals("Feb")) {
aStrings[1] = "02";
}
if (aStrings[1].equals("Mar")) {
aStrings[1] = "03";
}
if (aStrings[1].equals("Apr")) {
aStrings[1] = "04";
}
if (aStrings[1].equals("May")) {
aStrings[1] = "05";
}
if (aStrings[1].equals("Jun")) {
aStrings[1] = "06";
}
if (aStrings[1].equals("Jul")) {
aStrings[1] = "07";
}
if (aStrings[1].equals("Aug")) {
aStrings[1] = "08";
}
if (aStrings[1].equals("Sep")) {
aStrings[1] = "09";
}
if (aStrings[1].equals("Oct")) {
aStrings[1] = "10";
}
if (aStrings[1].equals("Nov")) {
aStrings[1] = "11";
}
if (aStrings[1].equals("Dec")) {
aStrings[1] = "12";
}
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String date = aStrings[5] + "-" + aStrings[1] + "-" + aStrings[2] + " " + aStrings[3];
Date datetime = null;
try {
datetime = df.parse(date);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return datetime;
}
然后,我们将获得的Date转化为我们想要的格式
//将数据库中的时间(字符串)格式转化为相应的格式
String str="";
SimpleDateFormat sdf1=new SimpleDateFormat("yy-MM-dd HH:mm",Locale.CHINA);
Date d=formatDate2(cursor.getString(2));
str=sdf1.format(d);
str即是我们想要的格式的字符串了。
如果想要 06-22 这种格式,只需将代码改为
SimpleDateFormat sdf1=new SimpleDateFormat("MM-dd",Locale.CHINA);
以此类推,06-22 19:21等等。。