Android字符串日期到日期时间转换

时间:2015-11-25 09:40:34

标签: java android

示例字符串为:25-11-2015 14:59

String str= "25-11-2015 14:59";

我想将str转换为Date。但它给了我一个错误。我的转换功能是

public Date getDate(String date)
    {
        try {

            Log.v("Date","Date string: "+date);

            SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");
            Date convertedDate = new Date();
            convertedDate = dateFormat.parse(date);
            return  convertedDate;

        } catch (Exception e)
        {
            Log.v("error","error date parse : "+e.getMessage());
            return  null;
        }
    }

但它显示错误:

  

无法解释的日期:" 25-11-2015 14:59" (在偏移16处)

任何人都可以帮我解决问题

3 个答案:

答案 0 :(得分:2)

您的格式模式可能应为:dd-MM-yyyy HH:mmhh用于"小时/上午(1-12)",详见javadoc

答案 1 :(得分:0)

您可以创建一些通用的东西并检查长度;

public  static Date getDate(String date){
     Date convertedDate = null;

        DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss aa");

        if (date.length() == 16)            
            dateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm");
        else if (date.length() == 10)
            dateFormat = new SimpleDateFormat("dd-MM-yyyy"); 

        try {
            convertedDate = dateFormat.parse(date); 
        } catch (ParseException e) {
            e.printStackTrace();

        }
    return convertedDate;
}

答案 2 :(得分:0)

assylias的代码说明,考虑您的要求:)

      String testDateString2 = "02-04-2014 23:37";    
      SimpleDateFormat df2 = new SimpleDateFormat("dd-MM-yyyy HH:mm"); 
      Date d2 = df2.parse(testDateString2);
      System.out.println("Date : "+df2.format(d2));