0

私は実際に2つの日付の違いを見つけたいと思っていますが、現在の日付で不可解な日付エラーが発生します:

String act_dateString;

         Calendar cal =  Calendar.getInstance();
          act_dateString  = cal.getTime().toLocaleString();


        SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy/MM/dd");

        Date date_old = null;

            try {
                date_old = formatter1.parse(act_dateString);
            } catch (ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

Logcat ショー:

10-21 00:03:34.904: W/System.err(770): java.text.ParseException: Unparseable date: Oct 21, 2013 12:03:34 AM
10-21 00:03:34.904: W/System.err(770):  at java.text.DateFormat.parse(DateFormat.java:645)
10-21 00:03:34.914: W/System.err(770):  at com.example.datesdifference.MainActivity.showDifference(MainActivity.java:60)
10-21 00:03:34.914: W/System.err(770):  at com.example.datesdifference.MainActivity.onCreate(MainActivity.java:25)
10-21 00:03:34.914: W/System.err(770):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-21 00:03:34.914: W/System.err(770):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
10-21 00:03:34.914: W/System.err(770):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
10-21 00:03:34.914: W/System.err(770):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
10-21 00:03:34.914: W/System.err(770):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
10-21 00:03:34.914: W/System.err(770):  at android.os.Handler.dispatchMessage(Handler.java:99)
10-21 00:03:34.914: W/System.err(770):  at android.os.Looper.loop(Looper.java:123)
10-21 00:03:34.914: W/System.err(770):  at android.app.ActivityThread.main(ActivityThread.java:4627)

これをGoogleで検索しましたが、これを解決できません。誰でも助けてくれますか?

4

5 に答える 5

0
于 2016-08-23T23:29:59.833 に答える
0
    String act_dateString;
    SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy/MM/dd");
    Calendar cal =  Calendar.getInstance();
    Date date_old = null;
    act_dateString =formatter1.format(cal.getTime());
       try {
           date_old = formatter1.parse(act_dateString);
       } catch (ParseException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }
于 2013-10-20T18:57:10.967 に答える
0

カレンダーを日付に変換したい場合は、これを使用できると思います

Date date_old =  new Date(cal.getTimeInMillis());
于 2013-10-20T18:48:41.800 に答える
0

日付を解析するには、この方法を実行する必要があります。たとえば、コードで toLocalString() を呼び出すと、文字列 ' Oct 20, 2013 12:57:28 AM ' が返されます。これにより、java.text.ParseException: Unparseable date: "Oct 20, 2013 12:57:28 AM You have to input a Date String with format "yyyy/MM/dd" がスローされます。そのためには、日付形式を変換する必要があります。文字列形式「yyyy/MM/dd」に変換すると、入力文字列を解析できるようになります

  String DATE_FORMAT_NOW = "yyyy/MM/dd";
    Calendar cal = Calendar.getInstance();
    Date date = null;
    SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
    String dateInStringFormat = sdf.format(cal.getTime());
    try {
        //parsing the date string with format "yyyy/MM/dd"
        date = sdf.parse(dateInStringFormat);
        System.out.println(date.toLocaleString());
    } catch (ParseException ex) {
        Logger.getLogger(DateTest.class.getName()).log(Level.SEVERE, null, ex);
    }

例外がスローされる理由を理解していただければ幸いです。2 つの日付の差を日数で求めるには、

   long diffInDays = (newerDate.getTime() - olderDate.getTime())/(1000*60*60*24);
   System.out.println(diffInDays);
于 2013-10-20T19:03:56.000 に答える