2017-03-05 97 views
0

我想查找剩餘的時間,直到某天和某個時間。 我的意思是說,如果目標時間是3月27日(2017年)10時 ,今天是3月10日8點,那麼剩下的時間是17天和2小時。如何計算剩餘時間,直到某日期

有沒有一些方法使用日期android API來計算這個時間呢?

回答

2

您可以通過調用這個方法做到這一點:

public static Map<TimeUnit,Long> computeDiff(Date date1, Date date2) { 
    long diffInMillies = date2.getTime() - date1.getTime(); 
    List<TimeUnit> units = new ArrayList<TimeUnit>(EnumSet.allOf(TimeUnit.class)); 
    Collections.reverse(units); 
    Map<TimeUnit,Long> result = new LinkedHashMap<TimeUnit,Long>(); 
    long milliesRest = diffInMillies; 
    for (TimeUnit unit : units) { 
     long diff = unit.convert(milliesRest,TimeUnit.MILLISECONDS); 
     long diffInMilliesForUnit = unit.toMillis(diff); 
     milliesRest = milliesRest - diffInMilliesForUnit; 
     result.put(unit,diff); 
    } 
    return result; 
} 

它給你地圖TIMEUNIT的,其價值,如:

Map:{DAYS=1, HOURS=3, MINUTES=46, SECONDS=40, MILLISECONDS=0, MICROSECONDS=0, NANOSECONDS=0}, 

然後你就可以將它轉換成任何你想要的。

1

使用

long futureTimeMillis; 
long currentTimeMillis 
DateUtils.getRelativeTimeSpanString(futureTimeMillis, currentTimeMillis, DateUtils.MINUTE_IN_MILLIS);