4

クラスの 1 つを Parcelable にしようとしていますが、その属性の 1 つが Date オブジェクトです。

writeToParcel() メソッドには次のものがあります。

out.writeLong(myDate.getTime());

そして、私の createFromParcel() メソッドには

person.setDate(new Date(in.readLong() * 1000));

Intent に渡すオブジェクトには、次のように作成された Date があります。

new Date(2000,12,06)

しかし、私が反対側でそれを読んだとき、他の活動で:

myDate.getYear()+"-"+myDate.getMonth()+"-"+myDate.getDay()

「2001-0-0」と出力されます

小包の処理中に何かが台無しになっていると思いますか?

4

2 に答える 2

1

エラーは、Date オブジェクトの作成方法にあります。詳細については、ドキュメントを確認してください。

パラメーター

年、0 は 1900 年です (たとえば、100 は 2000 年です)。

月、0 ~ 11 (たとえば、6 月は 5)。

月の日、1 - 31 (例は必要ないと思います)。

ご覧のとおり、この「new Date(2000,12,06)」を実行すると、最初に作成したと思っていた日付が作成されません。また、このメソッドはAPI 1 から廃止されたので、API 1をターゲットにしている場合を除き、使用しないでください。もう誰も使用していないと思います。

また、CommonsWare があなたに言ったように、読むときに最後の 1000 を削除してください。

于 2014-06-17T17:43:17.180 に答える