0

我只是插入並玩一個示例代碼來獲取聊天/消息應用程序的懸掛。我使用的是功能gettimedate這樣,在我的模型類,我有以下:如何從給定的日期時間函數中分別顯示日期和時間?

private volatile long mTimedate; 

public myclass(....,DateType date,...){ 
     mTimedate = date != null ? date.time : new Date().getTime(); 

} 
public final long getTimedate() { 
     return mTimedate; 
    } 
public int hashCode() { 
     if (mId != null) { 
      return mId.hashCode(); 
     } 

     int hash = mBody == null ? 0 : mBody.hashCode(); 
     return 31 * hash + (new Long(mTimedate)).hashCode(); 
    } 
public boolean equals(Object obj) { 
     if (this == obj) { 
      return true; 
     } 

     if (!(obj instanceof myclass)) { 
      return false; 
     } 

     myclass other = (myclass) obj; 
     return mId != null ? mId.equals(other.mId) : other.mId == null 
       && (mBody == null ? other.mBody == null : mBody.equals(other.mBody)) 
       && mTimedate == other.mdate; 
    } 

現在,我不知道,我該如何利用這段時間日期函數,這樣我可以提取「月-date,一年「爲我的觀點頂部和底部的」12小時格式的時間「來自相同的函數gettimedate()。

這裏是我的適配器上我使用這個功能顯示:

holder.txtInfo.setText(String.valueOf(new Date(msg.getTimedate()))); 

返回全包爲說:「星期一13年10月19日:03:03美國東部時間2015年」 但我只需要使用它在不同的意見件。任何線索我如何能夠在2個不同的地方使用它?

PS:對於一個粗略的工作代碼示例,這裏是一個示例代碼: http://www.codeproject.com/Tips/897826/Designing-Android-Chat-Bubble-Chat-UI

而且,我想修改這個測試代碼,看看我是否能顯示在頂部的日期談話的一天只有一次,每個對話只有12小時的時間格式,例如(4:35 pm),就像任何標準聊天一樣。無論如何要用上面的代碼來做到這一點?

謝謝!

回答

0

如果你想操縱與日期的細節工作,我prefere你使用Joda Time。它真的非常有益的圖書館,你可以找到間隔,週期,持續時間越來越多......

Here是庫的.jar文件的鏈接。祝你好運

0

使用SimpleDateFormat類。

實施例:

public String getDateTimeStringWithSeconds(long time) { 
    Calendar calendar = Calendar.getInstance(); 
    calendar.setTimeInMillis(time); 
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("d/M-yyyy - HH:mm:ss"); 
    return simpleDateFormat.format(calendar.getTime()); 
} 

這將返回一個字符串,如 「20/10-2015 - 0時58分33秒」。
但它的印刷方式幾乎可以更改爲任何東西,全部在SimpleDateFormat documentation

+0

感謝我得到的那部分工作,但是,我想知道我怎麼顯示在每一個頂部的單日與格式聊天「2015年10月20日星期二」爲每天在該特定日期收到的聊天內容而不重複,就像android原生短信的格式一樣。 –

0

使用此:

Date date = new Date(); 
SimpleDateFormat tryDateFormat = new SimpleDateFormat("EEEE MMMM-dd-yyyy"); 
String formattedDate = tryDateFormat.format(date); 

System.out.println(formattedDate); 

它打印此

Tuesday October-20-2015 
+0

我得到了那部分工作,但對於第二部分,我怎麼才能讓它顯示在每個新批消息的列表視圖的頂部,只有一次,來自特定日期的消息?就像在Android本地消息 –