如何比较当前时间和时间范围?

我有两个String变量- time1time2。两者都包含格式为 HH:MM的值 。我该如何检查:

  1. 如果当前的时间内 time1time2?
  2. time1 会在最近一小时发生吗?

我实现了以下内容以转换time1Date格式。但是它使用折旧方法:

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

回到顶部