将字符串转换为Android日期

时间:2014-01-20 21:43:45

标签: java android sqlite simpledateformat

我正在尝试转换表示存储在SQLITE中的日期的字符串。

日期存储在sqlite中,如下所示:

Date date;

date.toString();

根据Java文档,toString()方法:

  

返回此Date的字符串表示形式。格式是   相当于使用格式字符串为“EEE MMM”的SimpleDateFormat   dd HH:mm:ss zzz yyyy“,看起来像”Tue Jun 22 13:07:00   PDT 1999“。使用当前的默认时区和语言环境。如果你   需要控制时区或语言环境,使用SimpleDateFormat   代替。

直到这里,它没关系,但是当我尝试获取String并再次将其转换为日期时,Java会抛出异常。

String来自sqlite:

Mon Jan 20 18:26:25 BRT 2014

所以,我这样做:

SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);

Date date= sdf.parse("Mon Jan 20 18:26:25 BRT 2014");

我做错了什么?

感谢。

3 个答案:

答案 0 :(得分:1)

试试这段代码

String dateString = "here your date";
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
Date convertedDate = new Date();
try {
    convertedDate = dateFormat.parse(dateString);
} catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
System.out.println(convertedDate);

答案 1 :(得分:1)

试试这个:

String w = "Mon Jan 20 18:26:25 BRT 2014";
SimpleDateFormat pre = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
try{
    Date date = pre.parse(w);
    System.out.println(sdf.format(date));
}catch(Exception e){
    e.printStackTrace();
}

输出:

20/01/2014

答案 2 :(得分:0)

格式化程序,用于以dd/MM/yyyy

格式存储和恢复数据值
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy");

存储数据

String dataAsString = simpleDateFormat.format(date); // 20/01/2014

恢复数据

Date data = simpleDateFormat.parse(dataAsString);