在 Debug模式下,我看到我正在解析的值等于“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();
}
}
}
最佳答案
您不是在要求 HOUR_OF_DAY
值 - 您要求 HOUR_OF_DAY - 1
值,实际上对应于 Calendar.HOUR
- 12 小时版本:
Field number for get and set indicating the hour of the morning or afternoon. HOUR is used for the 12-hour clock (0 - 11). Noon and midnight are represented by 0, not by 12. E.g., at 10:04:15.250 PM the HOUR is 10.
只需将代码更改为
int interval = c.get(Calendar.HOUR_OF_DAY);
...一切都会好起来的。
关于java - 日历 HOUR_OF_DAY 存在问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32373550/