1

java.util.Calendar クラスを使用する GAE アプリがあります。私のアプリは、1 日が経過すると一部の内部データを変更します/現在、アプリをテストしたいので、手動で設定および変更する偽の日付データ メンバーがあります。データストアに保存したい。約 2 時間保存しようとした後、FakeDate という名前のクラスでラップすることにしました。次のようになります。

@PersistenceCapable
public class FakeDate {

@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;

@Serialized
private Calendar _fakeCurrentDate;

唯一の問題は、_fakeCurrentDate のデータが保存されないことです。最初に、カレンダーの日付を 2012 年 8 月 8 日に設定しました。

pm.makePersistent(_currentDate);

すべて問題ないように見えますが、電話すると

        PersistenceManager pm = PMF.get().getPersistenceManager();
    Query q = pm.newQuery(FakeDate.class);
    try {
        @SuppressWarnings("unchecked")
        List<FakeDate> list = (List<FakeDate>) q.execute();
        for (FakeDate f:list){
            System.out.println(f.getDayOfMonth());
            System.out.println(f.getMonth());
            System.out.println(f.getYear());
        }
    } finally {
        q.closeAll();
        pm.close();
    }

私が取得した FakeDate インスタンスは、2012 年 9 月 27 日の Calendar インスタンスを保持しています。これは、Calendar.getInstance() を呼び出すときに取得するデフォルトの日付です。

かなり簡単なものが欠けているようです。私ですか?

4

1 に答える 1

1

Calendarクラスは、データストア モデルでサポートされているフィールド タイプではありません。サポートされている型の詳細については、プロパティと値の型をご覧ください。モデルに Date フィールドが必要な場合は、 として宣言し、java.util.Dateを使用して初期化しCalendarます。

お役に立てれば!

于 2012-10-28T20:35:42.657 に答える