質問

私は日付を比較しようとしていますが、コードがうまくいかない場所を見つけましたが、その理由はわかりません。

私は日付を今日の日付と比較しようとしています(グレゴリオカレンダーのみを使用しています)。私は今日の日付をコードで言及されている場所で印刷しました、そして、ある場所では、2010年から3910年(今日の年 + 1900年)から魔法のように変化します。

誰かがこれの理由を知っていますか?

//Prints out 2010   
System.out.println("TodaysDate.getYear():\t"+todaysDate.getYear());
//Prints out 2010
System.out.println(todaysDate);

//Getting a year from a string (it is 2010)
todaysDate.setYear(Integer.parseInt(yea));

//Prints out 2010   
System.out.println("TodaysDate.getYear():\t"+todaysDate.getYear());
//Prints out 3910   
System.out.println(todaysDate);
役に立ちましたか?

解決

日付は通常、「1900年以降の年数」として保存されるため、それを補う必要があります。ドキュメントでそれを見ることができます Date: http://developer.android.com/reference/java/util/date.html

編集:コメントとして投稿したものに言及する必要があります。ジェフ・シャーキーは、カレンダークラスに対して推奨されました(あなたもそれを使用している場合)。 android.text.format.dateutilsははるかに軽量です(特に古い電話でカレンダークラスを最初にロードすると、電話が少し停止することがわかります)。 DateUtilsはAndroid 1.5以上で利用できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top