2012-01-01 49 views
10

來獲得當前日期和時間爲什麼當前的日期保存爲3912?

final Calendar c = Calendar.getInstance(); 
mYear = c.get(Calendar.YEAR); 
mMonth = c.get(Calendar.MONTH); 
mDay = c.get(Calendar.DAY_OF_MONTH); 
mHour = c.get(Calendar.HOUR_OF_DAY); 
mMinute = c.get(Calendar.MINUTE); 

創建當前日期的對象

Date toDate; 
    toDate.setYear(mYear); 
    toDate.setMonth(mMonth); 
    toDate.setDate(mDay); 



Date endDate = toDate; 

打印時結束日期對象我

Mon Jan 01 13:11:00 GMT+03:00 3912 

爲什麼呢?

+0

y2.012K錯誤導致的問題 – 2012-01-01 11:24:34

+0

是你的系統時間設置爲正確的一年? – Andrew 2012-01-01 11:23:07

回答

18

Date.setYear(int)描述:設置此日期對象自1900年以來的公曆年。因此,1900 + 2012 = 3912

但是calendar.get(Calendar.YEAR)返回確切的年數2012。所以API的這種不一致會導致您的問題。但無論如何Date.setYear(int)已棄用,因此,最好使用Calendar對象進行日期計算。

+0

那我該怎麼辦? – Bader 2012-01-01 11:25:44

+0

@AdhamEnaya您可以從年數減去'1900':'toDate.setYear(mYear - 1900)'。但我最好建議使用'Calendar'對象進行日期計算。 – 2012-01-01 11:29:41

0

最好使用日曆

Calendar cal=Calendar.getInstance(); 
cal.set(Calendar.YEAR,myear); 

(即)

cal.set(Calendar.YEAR,2016); 
相關問題