2016-02-01 63 views
0

我想将json日期字符串转换为日期以存储到SQLite数据库。运行后,应用程序在一段时间后崩溃,并且得到错误。引发:java.lang.IllegalArgumentException:解析错误:在这一行Date date = new Date(strActiondate);前2到3个月运行,但现在它的崩溃。感谢先进!引起︰java.lang.IllegalArgumentException:解析错误︰在Android中

这里是我的日期代码

Log.e(" strActiondate "," ==========>>>>> "+strActiondate); 
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss a", Locale.getDefault()); 
        Date date = new Date(strActiondate); 
        String newDate = dateFormat.format(date); 
        Log.e(" newDate "," = "+ newDate); 

这里是我的日志猫错误

Caused by: java.lang.IllegalArgumentException: Parse error: 
      at java.util.Date.parseError(Date.java:364) 
      at java.util.Date.parse(Date.java:560) 
      at java.util.Date.<init>(Date.java:154) 
+0

什么是'strActiondate'的价值? –

+0

strActiondate的价值是什么?另外什么是你试图将strActiondate转换为日期格式? –

+0

对不起,延迟回复。 12/23/2015 1:28:14 PM这是strActiondate的值。 –

回答

1

您可以使用以下函数来一个日期字符串格式转换为另一种日期字符串格式。

public static String convertDateStringFormat(String dateString, String originalDateFormat, String outputDateFormat){ 
     String finalDate = null; 
     SimpleDateFormat simpleDateFormat = new SimpleDateFormat(originalDateFormat); 
     try { 
      Date date = simpleDateFormat.parse(dateString); 
      simpleDateFormat = new SimpleDateFormat(outputDateFormat); 
      finalDate = simpleDateFormat.format(date); 
     } catch (ParseException e) { 
      e.printStackTrace(); 
     } 
     return finalDate; 
} 

用途:

String newDateString = convertDateStringFormat("12/23/2015 1:28:14 PM", "MM/dd/yyyy hh:mm:ss a", "yyyy-MM-dd hh:mm:ss a"); 
+0

'public Date(String string){...}'已弃用。不要使用它.. –

+0

我得到这个输出0008-01-06 02:26:25 PM使用你的代码: - String newDateString = convertDateStringFormat(“2015-12-23 1:28:14”,“ yyyy/MM/dd hh:mm:ss a“,”yyyy-MM-dd hh:mm:ss a“); –

+0

感谢您的更新,有一个小错误,我已经更新了我的答案..请检查它.. –