0

为什么这段代码给我带来麻烦?

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 日。

4

2 回答 2

3

阅读日期和时间模式部分

你应该使用

SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");

M是一年中的月份,而m小时是分钟

于 2013-10-23T18:05:03.293 回答
1

月份的格式符号使用大写M;你已经使用m了两次分钟,30这里是。作为参考,这里是解释所有格式符号的 JavadocsSimpleDateFormat

于 2013-10-23T18:05:09.077 回答