首页 > 解决方案 > 当日期属于不同年份时,日历毫秒差异给出错误

问题描述

我正在尝试计算倒数计时器的两个日期之间的毫秒差。当两个日期属于同一年时可以,但是当其中一个日期属于另一年时,它会给我负毫秒值,所以countdowntimer跳到onFinish().

我该如何解决这个问题?

// tarih = 01/01/2020 and zaman = 00:00, now date is in 2019
public long getCalendarTimeInMillis(String tarih,String zaman){
    String[] tarihParts = tarih.split("\\/");
    String[] zamanParts = zaman.split("\\:");

    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.MONTH, Integer.parseInt(tarihParts[1])-1);
    calendar.set(Calendar.DAY_OF_MONTH, Integer.parseInt(tarihParts[0]));
    calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(zamanParts[0]));
    calendar.set(Calendar.MINUTE,Integer.parseInt(zamanParts[1]));
    calendar.set(Calendar.SECOND,00);

    Calendar now = Calendar.getInstance();


    long left = calendar.getTimeInMillis() - now.getTimeInMillis() ;
    System.out.println(left/1000/60/60/24);
    return left;
 // sout result : -354
 }

标签: javaandroidcountdowntimerandroid-calendar

解决方案


推荐阅读