0

私はAndroidに非常に慣れていません。次の形式でサーバーから文字列の形式で日付を取得しています

2012-08-17 00:00:00

この文字列を現在の日付と比較して、年、月、日の形式で日付の違いを見つけたいと思います。

次のコードで遊んでみました

Date currentDate = new Date(System.currentTimeMillis());
Log.v("@@@@@@@@@","Current Date: " + currentDate);
Date passDate = new SimpleDateFormat().parse(passDateString);
Log.v("@@@@@@@@@","Pass Date: " + passDate);
dateDifference = passDate.compareTo(currentDate);

しかし、それは次の例外で戻った

04-15 12:08:29.101: V/@@@@@@@@@(1161): Current Date: Sun Apr 15 12:08:29 GMT+01:00 2012
04-15 12:08:29.101: W/System.err(1161): java.text.ParseException: Unparseable date: 2012-08-17 00:00:00
04-15 12:08:29.111: W/System.err(1161):     at java.text.DateFormat.parse(DateFormat.java:645)
04-15 12:08:29.111: W/System.err(1161):     at org.apis.PassesListItemAdapter.getView(PassesListItemAdapter.java:77)
04-15 12:08:29.111: W/System.err(1161):     at android.widget.AbsListView.obtainView(AbsListView.java:1315)
04-15 12:08:29.111: W/System.err(1161):     at android.widget.ListView.makeAndAddView(ListView.java:1727)
04-15 12:08:29.111: W/System.err(1161):     at android.widget.ListView.fillDown(ListView.java:652)
04-15 12:08:29.111: W/System.err(1161):     at android.widget.ListView.fillFromTop(ListView.java:709)
04-15 12:08:29.111: W/System.err(1161):     at android.widget.ListView.layoutChildren(ListView.java:1580)
04-15 12:08:29.111: W/System.err(1161):     at android.widget.AbsListView.onLayout(AbsListView.java:1147)
04-15 12:08:29.111: W/System.err(1161):     at android.view.View.layout(View.java:7034)
04-15 12:08:29.111: W/System.err(1161):     at android.widget.RelativeLayout.onLayout(RelativeLayout.java:909)
04-15 12:08:29.111: W/System.err(1161):     at android.view.View.layout(View.java:7034)
04-15 12:08:29.111: W/System.err(1161):     at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
04-15 12:08:29.111: W/System.err(1161):     at android.view.View.layout(View.java:7034)
04-15 12:08:29.111: W/System.err(1161):     at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
04-15 12:08:29.111: W/System.err(1161):     at android.view.View.layout(View.java:7034)
04-15 12:08:29.111: W/System.err(1161):     at android.view.ViewRoot.performTraversals(ViewRoot.java:1049)
04-15 12:08:29.111: W/System.err(1161):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1744)
04-15 12:08:29.111: W/System.err(1161):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-15 12:08:29.111: W/System.err(1161):     at android.os.Looper.loop(Looper.java:144)
04-15 12:08:29.111: W/System.err(1161):     at android.app.ActivityThread.main(ActivityThread.java:4937)
04-15 12:08:29.111: W/System.err(1161):     at java.lang.reflect.Method.invokeNative(Native Method)
04-15 12:08:29.111: W/System.err(1161):     at java.lang.reflect.Method.invoke(Method.java:521)
04-15 12:08:29.111: W/System.err(1161):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
04-15 12:08:29.111: W/System.err(1161):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
04-15 12:08:29.111: W/System.err(1161):     at dalvik.system.NativeStart.main(Native Method)
4

2 に答える 2

1

解析する日付の形式を追加します。

 passDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2012-08-17 00:00:00");
于 2012-04-15T11:26:32.080 に答える
1
Date currentDate = new Date(System.currentTimeMillis());
Log.v("@@@@@@@@@","Current Date: " + currentDate);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
Date passDate = dateFormat.parse(passDateString);
Log.v("@@@@@@@@@","Pass Date: " + passDate);
dateDifference = passDate.compareTo(currentDate);

このLINKを使用して2つの日付の違いを取得します。現在、日付を比較しているだけです。

于 2012-04-15T11:30:43.073 に答える