Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.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 fmt:formatDate显示的月份太多_Java_Datetime_Jstl - Fatal编程技术网

Java fmt:formatDate显示的月份太多

Java fmt:formatDate显示的月份太多,java,datetime,jstl,Java,Datetime,Jstl,我试图使用fmt:formatDate标记在我的JSP页面中显示一个日期 因此,在我的JSP中,我正在这样做: <td><fmt:formatDate pattern="dd-MM-yyyy" value="${document.documentDate}" /></td> XMLGregorianCalendar值是正确的。cal.getTime()也是正确的。(我调试了cal.getTime.getMonth()值 虽然我的JSP显示的一个月太多了!但它

我试图使用fmt:formatDate标记在我的JSP页面中显示一个日期

因此,在我的JSP中,我正在这样做:

<td><fmt:formatDate pattern="dd-MM-yyyy" value="${document.documentDate}" /></td>
XMLGregorianCalendar值是正确的。
cal.getTime()
也是正确的。(我调试了
cal.getTime.getMonth()

虽然我的JSP显示的一个月太多了!但它显示的不是2014年1月1日,而是2014年1月2日(dd-MM-yyyy)

有什么想法吗?

这就是问题所在:

cal.set(Calendar.MONTH, date.getMonth());
XMLGregorianCalendar
使用的月份范围为1-12。
java.util.Calendar
使用的月份范围为0-11。您希望:

cal.set(Calendar.MONTH, date.getMonth() - 1);

还注意到,您可能希望使用<代码>新GRGORICONALADARARE()/<代码>而不是<代码>日历.GETStaseNo.()/代码>,以避免它不是GRIGRIALORYNETRONE…而且您还应该考虑您是否真的希望它在系统默认时区中。(可能是这样,可能不是。如果这是服务器上运行的代码,我建议您不要-为什么服务器的位置要更改结果?

这就是问题所在:

cal.set(Calendar.MONTH, date.getMonth());
XMLGregorianCalendar
使用的月份范围为1-12。
java.util.Calendar
使用的月份范围为0-11。您希望:

cal.set(Calendar.MONTH, date.getMonth() - 1);

还注意到,您可能希望使用<代码>新GRGORICONALADARARE()/<代码>而不是<代码>日历.GETStaseNo.()/代码>,以避免它不是GRIGRIALORYNETRONE…而且您还应该考虑您是否真的希望它在系统默认时区中。(可能是这样,可能不是。如果这是服务器上运行的代码,我建议您不要-为什么服务器的位置要更改结果?

这就是问题所在:

cal.set(Calendar.MONTH, date.getMonth());
XMLGregorianCalendar
使用的月份范围为1-12。
java.util.Calendar
使用的月份范围为0-11。您希望:

cal.set(Calendar.MONTH, date.getMonth() - 1);

还注意到,您可能希望使用<代码>新GRGORICONALADARARE()/<代码>而不是<代码>日历.GETStaseNo.()/代码>,以避免它不是GRIGRIALORYNETRONE…而且您还应该考虑您是否真的希望它在系统默认时区中。(可能是这样,可能不是。如果这是服务器上运行的代码,我建议您不要-为什么服务器的位置要更改结果?

这就是问题所在:

cal.set(Calendar.MONTH, date.getMonth());
XMLGregorianCalendar
使用的月份范围为1-12。
java.util.Calendar
使用的月份范围为0-11。您希望:

cal.set(Calendar.MONTH, date.getMonth() - 1);

还注意到,您可能希望使用<代码>新GRGORICONALADARARE()/<代码>而不是<代码>日历.GETStaseNo.()/代码>,以避免它不是GRIGRIALORYNETRONE…而且您还应该考虑您是否真的希望它在系统默认时区中。(也许你会,也许你不会。如果这是服务器上运行的代码,我建议你不要-为什么服务器的位置要更改结果?

月份是以零为基础的,所以你应该使用:

cal.set(Calendar.MONTH, date.getMonth()-1);

月份是以零为基础的,因此您应该使用:

cal.set(Calendar.MONTH, date.getMonth()-1);

月份是以零为基础的,因此您应该使用:

cal.set(Calendar.MONTH, date.getMonth()-1);

月份是以零为基础的,因此您应该使用:

cal.set(Calendar.MONTH, date.getMonth()-1);