在调试模式下,我看到我解析的值等于"2015-09-01 22:00"
。当我创建日历时,我看到HOUR_OF_DAY
等于22。
但是,interval
等于10而不是22.错误在哪里?
import java.util.Calendar;
import java.text.SimpleDateFormat;
public class HelloWorld{
public static void main(String []args){
try {
Calendar c = Calendar.getInstance();
c.setTime(new SimpleDateFormat("yyyy-MM-dd HH:mm").parse("2015-09-01 22:00"));
int interval = c.get(Calendar.HOUR_OF_DAY-1);
System.out.println(interval);
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
答案 0 :(得分:2)
您并未要求HOUR_OF_DAY
值 - 您要求的HOUR_OF_DAY - 1
值实际上对应于Calendar.HOUR
- 12小时版本:
获取和设置的字段编号,表示上午或下午的小时。小时用于12小时制(0 - 11)。中午和午夜由0表示,而不是由12表示。例如,在10:04:15.250 PM,HOUR为10。
只需将代码更改为
即可int interval = c.get(Calendar.HOUR_OF_DAY);
......一切都会好的。