2014-10-16 94 views
2

我正在使用SimpleDateFormat將日期字符串轉換爲java.sql.date。
在轉換時,我遇到問題,即年份自動添加。
代碼:字符串日期到SQL日期添加年份

String d="2012-12-04T08:48:00"; 
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-mm-dd'T'HH:MM:SS"); 
java.util.Date date = null; 
date = formatter.parse(d); 
System.out.println("UTIL DATE: "+date); 
System.out.println("SQL DATE: "+new Date(date.getTime())); 

輸出:

UTIL DATE: Fri Dec 04 08:12:00 IST 2015 
SQL DATE: 2015-12-04  

我應該拿2012年日期,但它是增加了3年,這有什麼錯在我的代碼?
在此先感謝。

回答

2

mm代表分鐘,MM用來匹配月 - 交換領域的模式

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); 
+1

正是!而三年來自月份值「48」,即3 * 12個月太多(=> 3年)。 – Seelenvirtuose 2014-10-16 11:37:40

+0

您的解決方案存在誤區。時間應該是':mm:ss'我認爲 – Jens 2014-10-16 11:43:30

+0

@Reimeus我編輯了你的建議,因爲你還放錯了一些字段模式(分鐘和秒)。 – Seelenvirtuose 2014-10-16 11:44:14

1

更改簡單的日期格式的代碼如下:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); 

這裏mm是分MM爲monts。