2012-01-24 153 views
6

我需要解析原本不具有年制定類似 一個字符串「08月13日11:30」默認日期年份爲1970年,在

但是當我輸出日期它添加上, 我一年試圖設置一年,但今年是完全錯誤的輸出當屬「週四08月13日11:30:00 GMT 3911」

有沒有辦法設置年份的日期進行解析後?

SimpleDateFormat formatter = new SimpleDateFormat("dd MMM HH:mm"); 

String dateStr = "13 Aug 11:30"; 
Date fromDate = (Date)formatter.parse(dateStr); 


fromDate.setYear(2011); 
+0

標題是不是描述似乎這個問題嗎? –

+0

爲什麼不是當年字符串添加您解析它之前? –

+0

@馬丁因爲我從html標記解析日期和它沒有一年 –

回答

11

使用Calendar設置年份:

Calendar c = Calendar.getInstance(); 
c.setTime(fromDate); 
c.set(Calendar.YEAR, 2011); 
fromDate = c.getTime(); 
+1

使用未設置年份的棄用方式+1。 – Dev

3

您是否閱讀過setYear方法的API?

設置此Date對象的年爲指定數值加1900

2011 + 1900 = 3911

3

java.util.Date狀態十分清楚地表明setYear()的文檔增加了1900過去的一年你只需從你的論點中減去1900。

+0

謹防閏年:1900年不是閏年,但2000年。我同意你對有關將字符串添加到字符串的評論;這對我來說似乎最簡單。 – MRAB