2012-03-29 67 views
0

我有一個字符串(如:2012-30-03 12:30),我試圖用下面的代碼:爲什麼「2012-30-03」被解析爲2014年6月3日的DateFormat?

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

但是,當我嘗試以下方法:

System.out.println(this.startTime); 

以下GET印刷

週二6月03 12:30:00 CEST 2014

這裏有什麼問題嗎?

有沒有更好的方法來將我已經進入工作日期對象的字符串類型?

+2

差不多全線我使用喬達時間: http://joda-time.sourceforge.net/ – robertvoliva 2012-03-29 17:02:09

+3

雖然應該可以說是一個例外提出,它是「技術上是正確的,」如果一個去** * 30個月**和** 3天** **過去的2012年*。無論如何,請嘗試以更客觀的形式寫下問題。 – 2012-03-29 17:04:01

+2

正確寫下日期 - 它是如何工作的? – trutheality 2012-03-29 17:06:40

回答

9

我覺得

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

應該

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

根據您所提供的示例串(2012-30-03 12:30)。

集中你對日期類的憤怒進行驗證的基礎知識,你會沒事的。 ;)

+1

這可能是錯誤的示例字符串。沒有人使用年月日格式。它可以是年,月,日或年 - 月。 – trutheality 2012-03-29 17:08:59

+0

可能,但我只能根據所寫的信息進行診斷。另外,我已經看到了非標準日期格式以外的其他軟件。 – hvgotcodes 2012-03-29 17:14:30

+0

哈哈,omg ...我的壞:P – 2012-03-29 17:20:27

相關問題