为什么使用DateFormat将"2012-30-03"解析为2014年6月3日?

Øyv*_*nd 0 java date date-format

我有一个字符串(例如:2012-30-03 12:30),我正在尝试使用以下代码:

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");
this.startTime = (Date) df.parse(startTime); // startTime = "2012-30-03 12:30"
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试以下内容时:

System.out.println(this.startTime);
Run Code Online (Sandbox Code Playgroud)

以下内容打印出来

Tue Jun 03 12:30:00 CEST 2014

这到底有什么不对?

有没有更好的方法将我拥有的字符串转换为工作日期对象?

hvg*_*des 9

我认为

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");

应该

DateFormat df = new SimpleDateFormat("yyyy-dd-MM HH:mm");

基于您提供的示例字符串(2012-30-03 12:30).

将你的愤怒集中在日期类别上以验证基础知识,你会没事的.;)