示例字符串为: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处)
任何人都可以帮我解决问题
答案 0 :(得分:2)
您的格式模式可能应为:dd-MM-yyyy HH:mm
。 hh
用于"小时/上午(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));