2016-10-16 17 views
-1

「2016年10月16日」から「2016-10-16 00:00:00」に日付形式を変換しようとしています。 。最初の形式はアプリケーションに表示され、2番目の形式はSQLデータベースに送信されます。私は、java.text.ParseException:解析できない日付:「2016年10月16日」(オフセット3)

convertedBirthdate = Helper.convertDateFormat(birthdate, 
        "d mmmm yyyy", "yyyy-mm-dd hh:mm:ss"); 

public static String convertDateFormat(String dateTime, String previousFormat, 
            String destinationFormat) { 

     String formattedDateTime = null; 

     try { 
      DateFormat dateFormat = new SimpleDateFormat(previousFormat); 
      Date date = dateFormat.parse(dateTime); 
      SimpleDateFormat simpleDateFormat = new SimpleDateFormat(destinationFormat); 
      formattedDateTime = simpleDateFormat.format(date); 
     } catch (ParseException e) { 
      e.printStackTrace(); 
     } 

     return formattedDateTime; 

    } 

が、私は次のエラーの例外を持って、

私はLocale.getDefaultを追加することによって、自分のコードを編集
10-16 18:34:45.023 15313-15313/id.co.impilo.patient W/System.err: java.text.ParseException: Unparseable date: "16 Oktober 2016" (at offset 3) 
10-16 18:34:45.028 15313-15313/id.co.impilo.patient W/System.err:  at java.text.DateFormat.parse(DateFormat.java:579) 
10-16 18:34:45.028 15313-15313/id.co.impilo.patient W/System.err:  at id.co.impilo.patient.helper.Helper.convertDateFormat(Helper.java:171) 
10-16 18:34:45.028 15313-15313/id.co.impilo.patient W/System.err:  at id.co.impilo.patient.activities.ActivityAddPatient.callAddPatientAPI(ActivityAddPatient.java:832) 
10-16 18:34:45.028 15313-15313/id.co.impilo.patient W/System.err:  at id.co.impilo.patient.activities.ActivityAddPatient.addPatient(ActivityAddPatient.java:302) 
10-16 18:34:45.028 15313-15313/id.co.impilo.patient W/System.err:  at id.co.impilo.patient.activities.ActivityAddPatient_ViewBinding$4.doClick(ActivityAddPatient_ViewBinding.java:87) 
10-16 18:34:45.028 15313-15313/id.co.impilo.patient W/System.err:  at butterknife.internal.DebouncingOnClickListener.onClick(DebouncingOnClickListener.java:22) 
10-16 18:34:45.028 15313-15313/id.co.impilo.patient W/System.err:  at android.view.View.performClick(View.java:5217) 
10-16 18:34:45.028 15313-15313/id.co.impilo.patient W/System.err:  at android.view.View$PerformClick.run(View.java:21342) 
10-16 18:34:45.028 15313-15313/id.co.impilo.patient W/System.err:  at android.os.Handler.handleCallback(Handler.java:739) 
10-16 18:34:45.028 15313-15313/id.co.impilo.patient W/System.err:  at android.os.Handler.dispatchMessage(Handler.java:95) 
10-16 18:34:45.028 15313-15313/id.co.impilo.patient W/System.err:  at android.os.Looper.loop(Looper.java:148) 
10-16 18:34:45.028 15313-15313/id.co.impilo.patient W/System.err:  at android.app.ActivityThread.main(ActivityThread.java:5551) 
10-16 18:34:45.028 15313-15313/id.co.impilo.patient W/System.err:  at java.lang.reflect.Method.invoke(Native Method) 
10-16 18:34:45.028 15313-15313/id.co.impilo.patient W/System.err:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730) 
10-16 18:34:45.028 15313-15313/id.co.impilo.patient W/System.err:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620) 
+1

おそらくロケールの問題 –

+2

あなたはそうは思わないあなたは_month_と_minute_に同じ文字を使用していますか? https://developer.android.com/reference/java/text/SimpleDateFormat.html –

+0

オクトーバーは当てはまりません!それを10月に変更してください:) –

答えて

0

()の問題を解決するために、次のコードを使用します

public static String convertDateFormat(String dateTime, String previousFormat, 
            String destinationFormat) { 

     String formattedDateTime = null; 

     try { 
      DateFormat dateFormat = new SimpleDateFormat(previousFormat, Locale.getDefault()); 
      Date date = dateFormat.parse(dateTime); 
      SimpleDateFormat simpleDateFormat = new SimpleDateFormat(destinationFormat, Locale.getDefault()); 
      formattedDateTime = simpleDateFormat.format(date); 
     } catch (ParseException e) { 
      e.printStackTrace(); 
     } 

     return formattedDateTime; 

    } 
関連する問題