Java 日历日的小时数问题
在调试模式下,我看到我正在解析的值等于Java 日历日的小时数问题,java,calendar,simpledateformat,Java,Calendar,Simpledateformat,在调试模式下,我看到我正在解析的值等于“2015-09-01 22:00”。当我创建日历时,我看到一天中的小时数等于22。 但是,间隔等于10而不是22。哪里有错误 import java.util.Calendar; import java.text.SimpleDateFormat; public class HelloWorld{ public static void main(String []args){ try { Calendar c
“2015-09-01 22:00”
。当我创建日历时,我看到一天中的小时数
等于22。
但是,间隔
等于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\u
值-您是在要求一天中的HOUR\u-1
值,它实际上对应于日历。HOUR
-12小时版本:
get和set的字段号,指示上午或下午的时间。小时用于12小时时钟(0-11)。中午和午夜由0表示,而不是由12表示。例如,在晚上10:04:15.250,时间是10点
只需将代码更改为
int interval = c.get(Calendar.HOUR_OF_DAY);
。。。这很好。请在每篇文章中问一个问题。。。理想情况下,用一个简短但完整的例子。顺便说一句,我不能重现这个问题。对我来说是22分。如果您能提供一个简短但完整的程序,在您的机器上演示问题,我们将更容易为您提供帮助。@Jon Skeet:在这里,您只需执行代码即可看到结果(10)。a)代码应该在问题中,而不是在链接中。b) 该代码使用
c.get(Calendar.HOUR\u OF_DAY-1)
,这几乎肯定是问题所在。如果你把代码放在问题的开头,这一切都可以在几秒钟内解决…好的。我应该按照我的逻辑执行int interval=c.get(Calendar.HOUR\u OF_DAY)-1。谢谢。@Klausos:我们不知道你为什么要从一开始减去一个小时。。。想想你想发生什么,如果时间已经0…