当我使用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,为什么?
答案 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" );