比较字符串时间与当前时间android

时间:2015-08-08 14:11:21

标签: android string time android-notifications

我有两次来自timepickerdialog的字符串格式。我无法弄明白如何将我的第一个字符串时间与当前时间进行比较。在time1-time2期间,我想显示一个简单的通知。我已经阅读了很多没有运气的文档。也许详细的教程或源代码会有所帮助。

提前致谢

这是我的代码:

 final Button time1 = (Button) findViewById(R.id.button1);       
    time1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Calendar now = Calendar.getInstance();
            TimePickerDialog dpd = TimePickerDialog.newInstance(
                    Scheduler.this,
                    now.get(Calendar.HOUR_OF_DAY),
                    now.get(Calendar.MINUTE), true
            );
            dpd.show(getFragmentManager(), "Timepickerdialog");
            dpd.setOnTimeSetListener(new TimePickerDialog.OnTimeSetListener() {
                @Override
                public void onTimeSet(RadialPickerLayout radialPickerLayout, int selectedhour, int selectedminute) {
                    time1.setText(pad(selectedhour) + " : " + pad(selectedminute));      

                }
            });
        }
    });


    final Button time2 = (Button) findViewById(R.id.button2);       
    time2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Calendar now = Calendar.getInstance();
            TimePickerDialog dpd = TimePickerDialog.newInstance(
                    Scheduler.this,
                    now.get(Calendar.HOUR_OF_DAY),
                    now.get(Calendar.MINUTE), true
            );

            dpd.show(getFragmentManager(), "Timepickerdialog");
            dpd.setOnTimeSetListener(new TimePickerDialog.OnTimeSetListener() {
                @Override
                public void onTimeSet(RadialPickerLayout radialPickerLayout, int selectedhour, int selectedminute) {
                    time2.setText(pad(selectedhour) + " : " + pad(selectedminute));
                }
            });
        }
    });

1 个答案:

答案 0 :(得分:1)

有一个优秀的JodaTime库可用于与时间相关的操作,它甚至还有Android风格,这里有一个链接:

https://github.com/dlew/joda-time-android

在你的情况下,如果我得到正确的答案,你有两个时间点(小时和分钟对 - HH:MM - 时间1和时间2)进行比较,以及你要确保当前时间在该范围内的内容,对吗?

在这种情况下,我使用JodaTime的LocalTime课程,并将当前时间与时间1和时间2进行比较。

可能看起来像这样:

LocalTime currentTime = new LocalTime();
LocalTime time1 = new LocalTime(selectedhour1, selectedminute1);
LocalTime time2 = new LocalTime(selectedhour2, selectedminute2);

if (currenTime >= time1 && currentTime <= time2) {
    // show your notification
}