Java SimpleDataFormat未按预期分析月份

Java SimpleDataFormat未按预期分析月份,java,date,simpledateformat,Java,Date,Simpledateformat,我面临SimpleDateFormat的问题。当我试图执行程序时,我得到的输出是01-01-2014 20:18:18,而不是10-01-2014 20:18:18。 我正在发布我的代码。请帮我找出代码中的错误 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class ValidDate { public static voi

我面临SimpleDateFormat的问题。当我试图执行程序时,我得到的输出是01-01-2014 20:18:18,而不是10-01-2014 20:18:18。 我正在发布我的代码。请帮我找出代码中的错误

    import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;


public class ValidDate {

    public static void main(String[] args) {
        ValidDate vd = new ValidDate();
        vd.processDate();       

}


private  void processDate() {
        SimpleDateFormat sdf = new SimpleDateFormat("MM-DD-yyyy HH:mm:ss");
        try {

            Date dt = sdf.parse("10-01-2014 20:18:18");


            System.out.println(sdf.format(dt));

        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}

谢谢。

使用
dd
表示月份中的日期
DD
表示一年中的某一天。显然,年中的天优先于月,因此解析时,年中的天的
01
值覆盖月的
10

对月中的天使用
dd
DD
表示一年中的某一天。一年中的日期显然优先于月份,因此解析时,一年中的日期的
01
值覆盖月份的
10

更改DD->DD

SimpleDateFormat sdf = new SimpleDateFormat("MM-DD-yyyy HH:mm:ss");

更改DD->DD

SimpleDateFormat sdf = new SimpleDateFormat("MM-DD-yyyy HH:mm:ss");


您正在获得所做工作的正确输出。您的假设得到了意外的输出。我应该得到10-01-2014 20:18:18作为O/P,但得到了01-01-2014 20:18:18为什么?您得到了正确的输出。您的假设得到了意外的输出。我应该得到10-01-2014 20:18:18作为O/P,但得到01-01-2014 20:18:18为什么?谢谢您的建议,但问题是MM我认为我给出了10,但得到了输出作为O/P01@user1832985读第三句。您正在使用
DD
进行解析,这一事实使得
01
的年中日期的值(即月份
01
,因为它是一年中的第一天)覆盖月
10
的值。感谢您的建议,但问题在于MM我想我给出了10,但得到的输出为01@user1832985读第三句。使用
DD
进行解析的事实使得
01
的年中日期的值(即月份
01
,因为它是一年中的第一天)覆盖月份
10
的值。