Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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 - Fatal编程技术网

Java 日历比较不起作用

Java 日历比较不起作用,java,Java,我写了这段代码,但它不起作用 indate=“13/1/2011” 它不起作用….这几乎肯定不是您想要的: cd1.set(Calendar.MONTH, Integer.parseInt(StartDate[1])); Calendar.MONTH是以零为基础的。。。而人类通常以1为基础的方式读/写数月 不过,撇开细节不谈,你真的不应该自己编写解析代码,除非你有一种特别奇怪的格式,而这种格式不是由库来处理的。如果您真的想继续使用Java库,请使用SimpleDataFormat对其进行解析。

我写了这段代码,但它不起作用

indate=“13/1/2011”


它不起作用….

这几乎肯定不是您想要的:

cd1.set(Calendar.MONTH, Integer.parseInt(StartDate[1]));
Calendar.MONTH
是以零为基础的。。。而人类通常以1为基础的方式读/写数月

不过,撇开细节不谈,你真的不应该自己编写解析代码,除非你有一种特别奇怪的格式,而这种格式不是由库来处理的。如果您真的想继续使用Java库,请使用
SimpleDataFormat
对其进行解析。自己做语法分析会导致上面的错误和jk指出的错误。这就像从字符串手工构建XML:不要这样做——使用库


但就我个人而言,我建议在Java中使用所有日期/时间工作。这是一个更好的API。

这几乎肯定不是您想要的:

cd1.set(Calendar.MONTH, Integer.parseInt(StartDate[1]));
Calendar.MONTH
是以零为基础的。。。而人类通常以1为基础的方式读/写数月

不过,撇开细节不谈,你真的不应该自己编写解析代码,除非你有一种特别奇怪的格式,而这种格式不是由库来处理的。如果您真的想继续使用Java库,请使用
SimpleDataFormat
对其进行解析。自己做语法分析会导致上面的错误和jk指出的错误。这就像从字符串手工构建XML:不要这样做——使用库


但就我个人而言,我建议在Java中使用所有日期/时间工作。这是一个更好的API。

不要自己解析。要将字符串转换为日期,请使用DateFormat,如下所示:

    DateFormat f = new SimpleDateFormat("dd/M/yyyy");   
    String indate = "13/1/2011";
    Date cd1 = f.parse(indate);
    String currentDate ="1/14/2011";
    DateFormat f2 = new SimpleDateFormat("M/dd/yyyy");
    Date cd2 = f2.parse(currentDate);
    if (cd1.before(cd2))
    {
        check ="1";
    }

检查以查看定义了哪些模式以及如何使用它。

不要自己进行解析。要将字符串转换为日期,请使用DateFormat,如下所示:

    DateFormat f = new SimpleDateFormat("dd/M/yyyy");   
    String indate = "13/1/2011";
    Date cd1 = f.parse(indate);
    String currentDate ="1/14/2011";
    DateFormat f2 = new SimpleDateFormat("M/dd/yyyy");
    Date cd2 = f2.parse(currentDate);
    if (cd1.before(cd2))
    {
        check ="1";
    }

检查以查看定义了哪些模式以及如何使用它。

抱歉,当前日期是2011年1月14日。请尝试通过执行
System.out.println(新的SimpleDataFormat(“yyyy/MM/dd HH:MM:ss”).format(cd1.getTime())调试它
查看每个日历值是否正确解析。抱歉,当前日期是2011年1月14日。请尝试通过执行
System.out.println(新SimpleDataFormat(“yyy/MM/dd HH:MM:ss”).format(cd1.getTime())调试它
查看每个日历值的解析是否正确。@keuleJ:我也是。这只是使用Joda Time的众多原因之一。@keuleJ:我也是。这只是使用Joda Time的众多原因之一。