2013-12-20 28 views
0

我需要在聊天信使中顯示設備時間,但它只顯示區域時間。如果我更改設備時間,兩個時間都不會相同。Android:在聊天中使用joda顯示設備時間

我想在Timestamp中顯示當前設備時間我使用了joda.Please檢查我的代碼。

 DateTime createdAt = message.getCreatedAt(); 


     DateTimeZone dateTimeZone= DateTimeZone.getDefault(); 

     DateTimeFormatter fmtTimeBubble = DateTimeFormat.forPattern(LBUtil.TIME_AM_PM_FORMAT).withZone(dateTimeZone); 

     viewHolder.dateTime.setText(fmtTimeBubble.print(createdAt)); 

回答

1

使用以下方法根據任何時區獲取時間,你必須通過3個參數爲:以毫秒

  1. 系統當前時間。
  2. 設備時區
  3. 而且,時間格式像(MMM dd, hh:mm a

    public static String getFormatedTime(long dateTime,String timeZone, String format){ 
        String time = null; 
        try{  
         Calendar cal = Calendar.getInstance(); 
         cal.setTimeInMillis(dateTime); 
         SimpleDateFormat sdf = new SimpleDateFormat(format); 
         sdf.setTimeZone(TimeZone.getTimeZone(timeZone)); 
         time = sdf.format(cal.getTime()); 
        } 
        catch(Exception e){ 
         //logger.log(Level.SEVERE,"\n ERROR**********, Exception during get formated time: "+e+"\n");  
        } 
        return time; 
    } 
    

對於調用此方法,你必須得到編程設備時區:

Calendar calendar = Calendar.getInstance(); 
TimeZone zone = calendar.getTimeZone(); 
String timeZone = zone.getID(); 

現在打電話此方法:

String msgAtTime = getFormattedTime(System.currentTimeInMillis(), timezone, "MMM dd, hh:mm a"); 

現在,在textview中設置返回字符串。

msgTextVies.setText(msgAtTime); 
+0

感謝您的回答我有新的疑惑 –

+0

感謝您的回答我想顯示我的代碼給你,請你能檢查出來嗎? –

+0

即時通訊使用joda lib –

相關問題