为什么这段代码会给我带来麻烦?
public Date setupDate(){
String startDateString ="05/10/2010 04:30:20";
SimpleDateFormat df = new SimpleDateFormat("mm/dd/yyyy HH:mm:ss");
Date startDate = null;
try {
startDate = df.parse(startDateString);
String newDateString = df.format(startDate);
System.err.println(newDateString);
System.err.println(startDate.toString());
} catch (ParseException e) {
e.printStackTrace();
}
return startDate;
}
输出:
SEVERE: 30/10/2010 04:30:20
SEVERE: Sun Jan 10 04:30:20 EST 2010
我当然预计5月10日,而不是1月(我不知道它是如何成为1月,或30岁。
答案 0 :(得分:3)
你应该使用
SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
M
表示一年中有一个月,而m
表示分钟
答案 1 :(得分:1)
月份的格式符号使用大写M
;您已使用两次会议记录m
,此处为30
。作为参考,这是Javadocs that explain all format symbols for SimpleDateFormat
。