如何比较当前时间和时间范围?
我有两个String变量- time1
和time2
。两者都包含格式为 HH:MM的值 。我该如何检查:
- 如果当前的时间内
time1
和time2?
time1
会在最近一小时发生吗?
我实现了以下内容以转换time1
为Date
格式。但是它使用折旧方法:
Date clTime1 = new Date();SimpleDateFormat timeParser = new SimpleDateFormat("HH:mm", Locale.US);
try {
clTime1 = timeParser.parse(time1);
} catch (ParseException e) {
}
Calendar now = Calendar.getInstance();
clTime1.setYear(now.get(Calendar.YEAR) - 1900);
clTime1.setMonth(now.get(Calendar.MONTH));
clTime1.setDate(now.get(Calendar.DAY_OF_MONTH));
System.out.println(clTime1.toString());
回答:
- 将两个字符串转换为
Date
对象(也是时间对象)创建一个新Date
对象。 - 这将包含当前时间。
- 使用Date.before()和Date.after()方法来确定您是否在时间间隔内。
编辑:您应该能够直接使用此方法(并且不建议使用不推荐使用的方法)
public static final String inputFormat = "HH:mm";private Date date;
private Date dateCompareOne;
private Date dateCompareTwo;
private String compareStringOne = "9:45";
private String compareStringTwo = "1:45";
SimpleDateFormat inputParser = new SimpleDateFormat(inputFormat, Locale.US);
private void compareDates(){
Calendar now = Calendar.getInstance();
int hour = now.get(Calendar.HOUR);
int minute = now.get(Calendar.MINUTE);
date = parseDate(hour + ":" + minute);
dateCompareOne = parseDate(compareStringOne);
dateCompareTwo = parseDate(compareStringTwo);
if ( dateCompareOne.before( date ) && dateCompareTwo.after(date)) {
//yada yada
}
}
private Date parseDate(String date) {
try {
return inputParser.parse(date);
} catch (java.text.ParseException e) {
return new Date(0);
}
}
以上是 如何比较当前时间和时间范围? 的全部内容, 来源链接: utcz.com/qa/423590.html