SimpleDateFormat未按预期解析月份

时间:2014-02-28 06:55:57

标签: 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 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();
        }

    }
}

谢谢。

2 个答案:

答案 0 :(得分:8)

每月使用ddDD是一年中的一天。一年中的某一天显然优先于一个月,因此一年中01的值会在解析时覆盖10个月。

答案 1 :(得分:2)

更改DD - > DD

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

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