Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何计算到某个日期的剩余时间_Java_Android_Date - Fatal编程技术网

Java 如何计算到某个日期的剩余时间

Java 如何计算到某个日期的剩余时间,java,android,date,Java,Android,Date,我想找到剩下的时间,直到某一天和某个时间。 我的意思是,如果目标时间是2017年3月27日10点 今天是3月10日8点,剩下的时间是17天2小时 是否有某种方法可以使用date android API来计算剩余时间?您可以通过调用以下方法来完成此操作: public static Map<TimeUnit,Long> computeDiff(Date date1, Date date2) { long diffInMillies = date2.getTime() - dat

我想找到剩下的时间,直到某一天和某个时间。 我的意思是,如果目标时间是2017年3月27日10点 今天是3月10日8点,剩下的时间是17天2小时


是否有某种方法可以使用date android API来计算剩余时间?

您可以通过调用以下方法来完成此操作:

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;
}

然后您可以将其转换为您想要的任何内容。

您可以通过调用以下方法来完成此操作:

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;
}
然后你可以把它转换成你想要的任何东西。

使用

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

我们如何读取地图?这里是它的结果。get(TimeUnit.DAYS)和etch我们如何读取地图?这里是它的结果。get(TimeUnit.DAYS)等等