2013-10-09 86 views
1

我正在學習Android中的格式日期和時間,我想嘗試將日期和時間轉換爲時間軸...? 例如:如何在android中轉換日期和時間,如時間軸?

String current_date = "2013-10-07 20:57:20"; 

String val_date1 = "2013-10-07 20:57:20"; 
String val_date2 = "2013-10-07 19:57:20"; 
String val_date3 = "2013-10-07 17:57:20"; 
String val_date4 = "2013-09-07 20:57:20"; 

上述日期和調整CURRENT_DATE轉換,結果如下列:

String val_date1_after_formated = "just now"; 
String val_date2_after_formated = "1h"; 
String val_date3_after_formated = "3h"; 
String val_date4_after_formated = "1d"; 

如何日期轉換與程序?我希望任何人都可以幫助我。對不起,如果我的英文不好...

回答

3

這裏說的應該做的工作

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
int[] steps = {1,60,3600,3600*24}; 
String[] names = {"seconds","minutes","hours","days"}; 

//... 

public String formatDelay(String date){ 
    try { 
     Date d = sdf.parse(date); 
     Long stamp = d.getTime()/1000; 
     Long now = System.currentTimeMillis()/1000;   
     Long dif = now - stamp; 

     if(stamp > now) return ""; 

     for(int i=0;i<steps.length;i++){ 
      if(dif<steps[i]){ 
       String output = Long.toString(dif/steps[i-1])+" "+names[i-1]; 
       return output; 
      } 
     }  

     return Long.toString(dif/steps[3])+" "+names[3]; 


    } catch (Exception e){ 
     e.printStackTrace(); 
     return ""; 
    } 
+0

感謝的人,這等解決方案,但它的工作:) ..再次感謝... – bukanamay

+1

@bukanamay不客氣xD – lelloman

+0

如果你添加一個檢查0(0-999毫秒) if(dif == 0)返回「0s」;只需在郵票下面>現在或更改郵票>現在郵票> =現在取決於你想要什麼 – richardwiden

0

不知道這是你尋找,但要獲得當前時間使用這個。以毫秒爲單位返回。

System.currentTimeMillis()/1000L; 

要將其格式化爲時間日期時間,請使用此代碼。

long loadDate = System.currentTimeMillis()/1000L; 
String dateString = new SimpleDateFormat("MM/dd/yyyy").format(new Date(loadDate)); 
+0

感謝的人的功能...我會試試:) – bukanamay

1

formatDuration可能很適合這樣的:

public String getDuration(long time) { 
    StringBuilder sb = new StringBuilder(); 
    android.support.v4.util.TimeUtils.formatDuration(System.currentTimeMillis() - date, sb); 
    return sb.toString(); 
} 

我們得到long time需要解析輸入日期(也許使用SimpleDateFormat)。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US); 
long date = sdf.parse("2013-10-07 20:57:20").getTime(); 
String duration = getDuration(date); 
+0

感謝的人......我會試試:) – bukanamay

相關問題