Java中的日期问题

时间:2012-11-30 09:14:40

标签: java date syntax simpledateformat

当我使用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,为什么?

2 个答案:

答案 0 :(得分:5)

SimpleDateFormat开始,一年中的某个月用Uppercase M表示。 Lowercase m适用于minute: -

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

应该是: -

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

答案 1 :(得分:1)

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

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

SimpleDateFormat formatter = new SimpleDateFormat( "yyyy-MM-dd" );