2012-04-13 65 views
5

我需要知道在android開發中是否有類似時間的東西?在android開發中有沒有像TimeSpan的東西?

在C#

有類似的東西,我喜歡以兩種方式使用它:

  1. 生成一個時間跨度,然後添加例如分鐘,然後顯示整個跨度
  2. 產生兩個日期時間之間的時間跨度(什麼是Android的等效的DateTime?)

回答

5
public long addSeconds(long dt,int sec) //method to add seconds in time 
{ 

    Date Dt = new Date(dt); 
    Calendar cal = new GregorianCalendar(); 

    SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy HH:mm:ss"); 
    sdf.setCalendar(cal); 
    cal.setTimeInMillis(Dt.getTime()); 
    cal.add(Calendar.SECOND, sec); 
    return cal.getTime().getTime(); 

} 

通的日期和時間,它會返回修改的時間......

3

不幸的是,沒有像TimeSpan類在Java中還提供原生的,但你可以用幾行代碼實現這一目標。在秒

Calendar startDate = getStartDate(); 
Calendar endDate = getEndDate(); 

long totalMillis = endDate.getTimeInMillis() - startDate.getTimeInMillis(); 
int seconds = (int) (totalMillis/1000) % 60; 
int minutes = ((int)(totalMillis/1000)/60) % 60; 
int hours = (int)(totalMillis/1000)/3600; 
2

Android有DateUtils,方法「formatElapsedTime」做你所需要的,如果你給它正確的輸入。

1

你可以很容易地得到「TimeSpan」以毫秒爲單位。要將毫秒轉換爲格式化的數字,您可以在您的功能中做一些快速而優雅的計算,例如

public static String GetFormattedTimeSpan(final long ms) { 
    long x = ms/1000; 
    long seconds = x % 60; 
    x /= 60; 
    long minutes = x % 60; 
    x /= 60; 
    long hours = x % 24; 
    x /= 24; 
    long days = x; 

    return String.format("%d days %d hours %d minutes %d seconds", days, hours, minutes, seconds); 
} 
相關問題