Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.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,我尝试以日期格式使用当前日期,但当我使用不同的日期格式时,会产生不同的结果。首先,我使用以下代码: private String getTodayDateString() { Calendar cal = Calendar.getInstance(); int month=cal.get(Calendar.MONTH); return Integer.toString(month); } private String getTodayDateString2() {

我尝试以日期格式使用当前日期,但当我使用不同的日期格式时,会产生不同的结果。首先,我使用以下代码:

private String getTodayDateString() {
    Calendar cal = Calendar.getInstance();
    int month=cal.get(Calendar.MONTH);
    return Integer.toString(month);
}
private String getTodayDateString2() {
    DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
    Calendar cal = Calendar.getInstance();
    return dateFormat.format(cal.getTime());
}
这个月的结果给我5分。 但当我使用此代码时:

private String getTodayDateString() {
    Calendar cal = Calendar.getInstance();
    int month=cal.get(Calendar.MONTH);
    return Integer.toString(month);
}
private String getTodayDateString2() {
    DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
    Calendar cal = Calendar.getInstance();
    return dateFormat.format(cal.getTime());
}

函数返回我2016年6月14日,这意味着月份以此日期格式计算6。为什么?问题出在哪里?

日历中的月份从0开始

0=一月

11=12月

如果你看到Calendar类的源代码,你会发现
public final static int JANUARY=0

同样适用于12月<代码>公共最终静态int 12月=11
检查此处

,因为日历界面中的月份是基于0的(文档中有说明)0表示第一个月?!!!!!第一个月是日历。一月。。。你不必担心它是否会阅读文档。从
日历.月的文档中:““get和set字段编号,表示月份。这是一个日历特定的值。公历和儒略历中一年的第一个月是1月,为0;最后一个月取决于一年中的月数。”提示:阅读javadoc。和其他文件。java util日历的内容不适合仅凭“常识”来处理。