如何比较时间范围?
How to compare time ranges?
嗨,我正在尝试比较时间范围,我的要求是当我从时间选择器对话框中 select 时间时,它应该在给定的时间范围内,为此我在下面写了代码,当我不 select 12 或 00 来自时间选择器对话框
开始time:06:00
结束time:23:00
select从时间选择器编辑时间 dialog:12:23
上面的时间不适合下面的代码,有人可以帮我吗
String pattern = "hh:mm";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
Date date1 = sdf.parse(startTime);
Date date2 = sdf.parse(endTime);
Date date3 = sdf.parse(selectedTime);
if (((date3.after(date1) || date3.equals(date1)) && (date3.before(date2) || date3.equals(date2)))) {
}
else {
Toast.makeText(context, "Pickup time should be open and close timings", Toast.LENGTH_SHORT).show();
}
你应该使用compareTo().
CompareTo method must return negative number if current object is less
than other object, positive number if current object is greater than
other object and zero if both objects are equal to each other.
代码参考
if (date1.compareTo(date2) < 0)
{
Log.d("RESULT","date1 older than date2");
}
else
{
Log.d("RESULT","date2 older than date1");
}
注意
确保你的TIME format
是完美的。
您可以使用下面的代码。
String pattern = "HH:mm";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
try {
Date date1 = sdf.parse(startTime);
Date date2 = sdf.parse(endTime);
Date date3 = sdf.parse(selectedTime);
if (date3.compareTo(date1) >= 0 && date3.compareTo(date2) <= 0) {
// Do your stuff
} else {
// Wrong time
}
} catch (Exception e) {
e.printStackTrace();
}
h表示am/pm中的小时(1-12)
H 表示一天中的小时 (0-23)
你的日期是 24 小时格式所以你应该使用 H 而不是 h.
嗨,我正在尝试比较时间范围,我的要求是当我从时间选择器对话框中 select 时间时,它应该在给定的时间范围内,为此我在下面写了代码,当我不 select 12 或 00 来自时间选择器对话框
开始time:06:00 结束time:23:00 select从时间选择器编辑时间 dialog:12:23
上面的时间不适合下面的代码,有人可以帮我吗
String pattern = "hh:mm";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
Date date1 = sdf.parse(startTime);
Date date2 = sdf.parse(endTime);
Date date3 = sdf.parse(selectedTime);
if (((date3.after(date1) || date3.equals(date1)) && (date3.before(date2) || date3.equals(date2)))) {
}
else {
Toast.makeText(context, "Pickup time should be open and close timings", Toast.LENGTH_SHORT).show();
}
你应该使用compareTo().
CompareTo method must return negative number if current object is less than other object, positive number if current object is greater than other object and zero if both objects are equal to each other.
代码参考
if (date1.compareTo(date2) < 0)
{
Log.d("RESULT","date1 older than date2");
}
else
{
Log.d("RESULT","date2 older than date1");
}
注意
确保你的TIME format
是完美的。
您可以使用下面的代码。
String pattern = "HH:mm";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
try {
Date date1 = sdf.parse(startTime);
Date date2 = sdf.parse(endTime);
Date date3 = sdf.parse(selectedTime);
if (date3.compareTo(date1) >= 0 && date3.compareTo(date2) <= 0) {
// Do your stuff
} else {
// Wrong time
}
} catch (Exception e) {
e.printStackTrace();
}
h表示am/pm中的小时(1-12)
H 表示一天中的小时 (0-23)
你的日期是 24 小时格式所以你应该使用 H 而不是 h.