2016-12-13 5 views
-2

私は、ユーザーの行動が時間のログに記録され、例えば次のように表示されるようなプロジェクトに取り組んでいます:1時間前、... 3時間前... 5日前。私はこれに新しいですし、進める方法を知らない。プロジェクトはNOT RESTベースであることに注意してください。これをどのように実装すればよいですか?Androidアプリケーションプロジェクトでタイムスタンプを生成する

答えて

0

あなたは

を使用して、ミリ秒単位で時間を得ることができ、ユーザーのアクションのためのミリ秒単位で時間を取得しますどこかでその時間を節約して、毎回、このアクションは

起こるどのくらい見つけるために、現在の時刻とその時間差を取ります

Calendar calendar = Calendar.getInstance(); 
calendar.getTimeInMillis(); 
0

あなたがして、実際のタイムスタンプを取得することができます::あなたのような何かを行うことができますあなたの質問については

long timestamp = System.currentTimeMillis(); 
long eventTimestamp = System.currentTimeMillis(); 

.. 
// some other stuff happens 
.. 

//get the passed time 
long actualTimestamp = System.currentTimeMillis(); 

long timestampDifference = actualTimestamp - eventTimestamp; 

int passedSeconds = timestampDifference/1000; //get the passed time in seconds 
int passedMinutes= passedSeconds/60; //get the passed time in minutes 
0

あなたは、Androidになので、あなたは、Androidプラットフォームに組み込まれたヘルパークラスDateUtilsを試みることができます。この未テストコードに似た何か:

String relativeTime = 
    DateUtils.getRelativeTimeSpanString(
    jud.getTime(), 
    System.currentTimeMillis(), 
    DateUtils.MINUTE_IN_MILLIS, 
    DateUtils.FORMAT_ABBREV_RELATIVE); 

あなたはAPI-スタイルが好きではないか、十分な機能を見つけるか、タイムゾーンの意識の欠落などの他の問題が表示されない場合、あなたはまた、外部の二つのうちの一つをダウンロードして試すことができます図書館:

PrettyTime(相対時間のスリム古典ライブラリ)

// your possible input 
Date jud = new Date(System.currentTimeMillis() - 3600000); 

org.ocpsoft.prettytime.PrettyTime pt = 
    new org.ocpsoft.prettytime.PrettyTime(Locale.ENGLISH); 
String relativeTime = pt.format(jud); 
System.out.println(relativeTime); // output: 1 hour ago 

またはマイライブラリTime4A(大きなだけでなく、より多くの機能や言語):

// your possible input 
Date jud = new Date(System.currentTimeMillis() - 3600000); 

Moment moment = TemporalType.JAVA_UTIL_DATE.translate(jud); 
String relativeTime = 
    net.time4j.PrettyTime.of(Locale.US) 
     .withShortStyle() 
     .printRelativeInStdTimezone(moment); 
System.out.println(relativeTime); // output: 1 hr. ago 

他のライブラリは相対時間の印刷をサポートしていません。

関連する問題