1

当我使用 java 时,我遇到了日期的下一个问题。我有这个代码:

String dateF=anio_final+"-12-31";
System.out.println("La fecha final al principio:"+dateF);

java.util.Date f_final=null;
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-mm-dd");
f_final=formatter.parse(dateF);
System.out.println("Al final la fecha final es:"+f_final);

//=> anio_final is 2012, 

因此,当我打印 dateF 时,我得到 2012-12-31,但是当我执行 SimpleDateFormat 将其放在 f_final 变量上时,我得到 2012-01-31,为什么?

4

2 回答 2

5

SimpleDateFormat中,一年中的月份由 表示Uppercase MLowercase m适用于minute:-

new SimpleDateFormat("yyyy-mm-dd");

应该: -

new SimpleDateFormat("yyyy-MM-dd");
于 2012-11-30T09:16:06.800 回答
1

请参阅http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

您的模式yyyy-mm-dd是:年-小时-分钟-月日:-)您应该更改为

SimpleDateFormat formatter = new SimpleDateFormat( "yyyy-MM-dd" );
于 2012-11-30T09:17:40.683 回答