0

旅行の日付を表示したい。アプリケーションにはいくつかの旅行がリストされており、それぞれがその世代の currentTimeMillis を持つ long 値を持っています。この長い数値を日付に変換したいのですが、出力は常に 1970 年頃です... System.currentTimeMillis() は、トリップ生成の時間を格納する正しい方法ですか?

Date date = new Date(trip.getStartTime());  // 195342322
SimpleDateFormat test = new SimpleDateFormat("yyyy-MM-dd"); 
startTime.setText(String.valueOf(test.format(date)));

-> startTime の出力: 1970-01-01

4

3 に答える 3

1

簡単な書式設定にはカレンダーを使用してみてください

于 2013-01-05T17:34:18.743 に答える
0

次のようなものを使用します。

Calendar calendar=Calendar.getInstance();
calendar.setTimeInMillis(trip.getStartTime());
Date date =calendar.getTime ();

ここに示すように。

于 2013-01-05T19:50:08.387 に答える
0

がどのように実装されているかはわかりませんtrip.getStartTime()が、間違った値を返します。1953423221976 年 3 月 10 日水曜日 21:45:22 GMT (オンラインで確認できます)

廃止されていない唯一のDateコンストラクターが引数を受け入れるので、longそれを使用したと思います。ISO 8601 など、データベースに適した方法で日付 (時刻) を保存することをお勧めします。クライアントの SQLite データベースに保存する場合、SQLite には時刻型がなく、使用する必要があることに注意してください。そのためのテキストフィールド。

Dateシリアル化のためにテキスト表現に切り替えると、次を使用して a を取得できますSimpleDateFormat.parse()

于 2013-01-05T17:49:21.120 に答える