1

ユーザーがコメントを入れるListViewことができます。ボックスに添付された「送信」を押すEditTextと、新しいコメントがMySQL現在の時間とともにデータベースに入ります。

Youtube のフォーマットに似た日付でリストビューにコメントを表示したいと思います。例: 「10 秒前」、「1 日前」、「52 日前」。

Calendar オブジェクト、SimpleDateFormat などを使用しますか?

また、データベースに日付を保存するにはどうすればよいですか? UNIX の日付スタンプのように簡単に変換できるものを想定しています。そして、現在の時刻に基づいて日付を動的に変更するのは ArrayAdapter でしょうか?

4

3 に答える 3

2

PrettyTimeを使用してそれを実現できます。

時間を節約するために、私は通常ミリ単位で時間を節約します。

于 2012-09-03T19:57:19.067 に答える
1

これを取得するには、タイムスタンプと現在のタイムスタンプの差を計算する必要があります (簡単にするためにミリ秒単位にしてください)。結果は、「前」のミリ秒数になります。次に、引き算や割り算などの簡単な計算を使用すると、分、日、週など、必要な数を取得できます。

編集:私はこれを使用します:

public static final long MILLIS_PER_SECOND  = 1000;
public static final long MILLIS_PER_MINUTE  = (MILLIS_PER_SECOND * 60);
public static final long MILLIS_PER_HOUR    = (MILLIS_PER_MINUTE * 60);
public static final long MILLIS_PER_DAY     = (MILLIS_PER_HOUR * 24);
public static final long MILLIS_PER_WEEK    = (MILLIS_PER_DAY * 7);
public static final long MILLIS_PER_MONTH   = (MILLIS_PER_DAY * 30);
public static final long MILLIS_PER_YEAR    = (MILLIS_PER_MONTH * 12);

これは 100% 正しいわけではないことに注意してください。これは、(意図的に単純化するために)月が常に 30 日という誤ったMILLIS_PER_YEAR仮定を作成したためであり、これは にも影響します。しかし、私は本当に気にしません-私がこれらを使用するのはロケット科学ではありません. ただし、次のMILLIS_PER_YEARように設定することで影響を軽減できます。

public static final long MILLIS_PER_YEAR = (MILLIS_PER_DAY * (7*31 + 4*30 + 28));

28は 2 月の場合です。この場合、以前のバージョンの 5 日間ではなく、うるう年に 1 日間だけ休みになります。

于 2012-09-03T19:59:37.723 に答える
0

DateUtils.getRelativeTimeSpanStringを試して、表示する日付をフォーマットしてください。

于 2012-09-15T16:03:21.790 に答える