Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 日历日的小时数问题_Java_Calendar_Simpledateformat - Fatal编程技术网

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…