Java 如何比较当前时间和预定时间

Java 如何比较当前时间和预定时间,java,android,Java,Android,我正在创建一个祈祷时间应用程序。在我的应用程序中,我计算剩余时间(通过比较当前时间)并启动倒计时 我不知道如何计算下一次祈祷的剩余时间?请帮忙 我得到的结果是:“Fajr:5000” 我想要这样的结果: 示例:Fajr时间为04:00:00,系统时间为03:50:00,结果为“Fajr:-00:10:00” 代码: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInst

我正在创建一个祈祷时间应用程序。在我的应用程序中,我计算剩余时间(通过比较当前时间)并启动倒计时

我不知道如何计算下一次祈祷的剩余时间?请帮忙

我得到的结果是:“Fajr:5000”

我想要这样的结果:

示例:Fajr时间为04:00:00,系统时间为03:50:00,结果为“Fajr:-00:10:00”

代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    getValueShubuh = jamShubuh.getText().toString().trim();

    Thread thread = new Thread() {
        @Override
        public void run() {
            try {
                while (!isInterrupted()) {
                    Thread.sleep(1000);
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            long timeDate = System.currentTimeMillis();
                            SimpleDateFormat prayerTimes = new SimpleDateFormat("HHmmss");
                            String prayerTime = prayerTimes.format(timeDate);

                            countdownPrayerTime(prayerTime);
                        }
                    });
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    };

    thread.start();
}

private void countdownPrayerTime(String prayerTime) {
    String shubuhTime = getValueShubuh.replace(":", "") + "00";
    String dzuhurTime = getValueDzuhur.replace(":", "") + "00";
    String asharTime = getValueAshar.replace(":", "") + "00";
    String maghribTime = getValueMaghrib.replace(":", "") + "00";
    String isyaTime = getValueIsya.replace(":", "") + "00";

    int countDown = Integer.parseInt(prayerTime) - Integer.parseInt(shubuhTime);

    shalatCountdown.setText(("Fajr : " + countDown).replace("-", ""));
}

System.currentTimeMillis()已过时。你把时间当作一根绳子来打发??我建议始终使用
java.time
包中的新类,并使用
Instant now=Instant.now()
然后将其与另一个瞬间进行比较。你告诉我们你想要的结果,但是你现在的结果是什么?您试图解决什么问题?为什么不起作用?@parser如果我使用LocalTime,它也需要最少的APIhigh@topher217我已经编辑了我的问题,谢谢,所以你告诉我们你得到了什么,而不是你试图解决问题的方法。为什么你认为你现在的成绩是5000?(即,如果您对自己的代码理解不足,无法回答此问题,那么其他人将很难理解,更不用说帮助回答了)。