0

ちょっとしたゲームを作っています。ゲームが初めて開始されるとき、1970 年 1 月 1 日からの時間を秒単位で SharedPreferences に保存します。

今、この日付を次の形式で画面に表示したいと思います: DD.MM.YYYYY

カレンダー機能を使用しましたが、02.04.0113 が返されるため、1900 年が欠落しています。

ここに私のコードがあります:

private void initBornTXT() {
    SharedPreferences pref = getSharedPreferences("LIFE", 0);
    long born = pref.getLong("BIRTHDAY", 0);
    Calendar c = Calendar.getInstance();

    c.setTimeInMillis(0);

    c.add(Calendar.SECOND, (int)born);
    int year = c.getTime().getYear();
    int month = c.getTime().getMonth();
    int day = c.getTime().getDay();
    String string_born = String.format("%02d.%02d.%04d", day, month, year);
    TextView born_txt = (TextView)findViewById(R.id.textViewBorn);
    born_txt.setText(string_born);
}

何が間違っている可能性がありますか?

4

3 に答える 3

1

日付オブジェクトを返す getTime を使用しています。日付は 0=1900 に基づいています。したがって、これは予想される出力です。代わりに SimpleDateFormat を使用してください。

ただし、Y2K バグを作成したことに対する称賛:)

于 2013-04-02T16:59:19.090 に答える