我想将字符串形式的日期转换为java.util.Date对象。
我能够进行转换,但结果与我的预期不同。这是一段代码:

 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-mm-dd");
String date = "1938-06-11";
java.util.Date utilDate = null;
try {
  utilDate = formatter.parse(date);
} catch (ParseException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
}
System.out.println("date:" + date);
System.out.println("utilDate:" + utilDate);


执行后出现以下输出:

date:1938-06-11
utilDate:Tue Jan 11 00:06:00 IST 1938


请建议我,为什么会这样,但是结果应该是

utilDate:Tue june 11 00:06:00 IST 1938

最佳答案

在代码中,您将格式指定为yearyearyear-minuteminute-dayday。

如果您检查api:http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html,则可以看到m代表分钟,M代表月份。

更正的

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String date = "1938-06-11";
java.util.Date utilDate = null;
try {
  utilDate = formatter.parse(date);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("date:" + date);
System.out.println("utilDate:" + utilDate);

10-06 05:35