1

我正在尝试使用 SimpleDateFormat 解析几个小时,并确定当前时间是否在两组小时之间。基本上,考虑到一个地方的营业时间,我试图确定它目前是否开放我们关闭。

我通过执行以下操作来获取当前时间:

SimpleDateFormat sdf2 = new SimpleDateFormat("kk:mm");
Calendar now = Calendar.getInstance();
int hour = now.get(Calendar.HOUR);
int minute = now.get(Calendar.MINUTE);
String currentHour = Integer.toString(hour);
String currentMinute = Integer.toString(minute);
String timeNow = currentHour + ":" + currentMinute;
Date timeRightNow = sdf2.parse(timeNow);

然后,我确定是否timeRightNow在开盘和收盘时间之间,我正在执行以下操作:

if (timeOpen.before(timeRightNow) && timeClose.after(timeRightNow)) {
    openStatus = "open!";
} else { 
    openStatus = "closed."; 
}

两者timeOpen和都是通过使用与找到的完全相同的方式timeClose解析字符串来找到的。sdf2timeRightNow

每次运行时,它都会设置openStatus为“关闭”。即使当前时间介于开盘时间和收盘时间之间。谁能指出我正确的方向来弄清楚为什么会这样?

4

1 回答 1

1

Calendar.HOUR改为Calendar.HOUR_OF_DAY. 这解决了这个问题。

于 2013-07-28T21:58:31.973 回答