-2

私はそれを日付に変換する必要があるint番号を持っていますが、この形式では

(「数秒前」、「数分前」、「数時間前」、「昨日」、「数日前」、「先週」、「先月」、「昨年」)

日付を取得できます

        int seconds =1320105600;

        int  millis = seconds * 1000;
        Date date = new Date(millis);
        SimpleDateFormat sdf = new SimpleDateFormat("EEEE,MMMM d,yyyy h:mm,a", Locale.ENGLISH);
        sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
        String formattedDate = sdf.format(date);

どうすればその形式に変換できますか

4

2 に答える 2

1

そのための関数を作成する必要があります。

int currentSeconds = ((int) System.currentTimeMillis())/ 1000;
int diff = currentSeconds - seconds;
if (diff < 60)
    formatedDate = "Few seconds ago";
else if (diff < 60 * 60)
    formatedDate = "Few minutes ago";

等々。

于 2013-10-30T09:43:54.597 に答える
0

Joda Timeを使用すると、2 つの日付の差を日、分、秒で簡単に取得できます。

java.util.Date d1, d2;

DateTime dt1 = new DateTime(d1);
DateTime dt2 = new DateTime(d2);

int numDays = Days.daysBetween(dt1, dt2).getDays(); 
int hours = Hours.hoursBetween(dt1, dt2).getHours() % 24;
int minutes = Minutes.minutesBetween(dt1, dt2).getMinutes() % 60);
int seconds = Seconds.secondsBetween(dt1, dt2).getSeconds() % 60);

if (numDays > 0) { return "A few days ago"; }
else if (hours > 0) { return "A few hours ago"; }
// And so on

特定の要件に多くの労力を費やすことなく、このパターンを適応させることができるはずです (Years.yearsBetweeenおよびMonths.monthsBetweenメソッドがあります)。

于 2013-10-30T09:44:23.850 に答える