2011-05-13 108 views
0

我有以下代碼:Calendar.add沒有返回預期日期

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-dd-MM HH:mm:ss"); 

Date convertedDate; 
String initialDate = "2011-13-05 11:00:00"; 
try { 
Calendar cal = Calendar.getInstance(); 
cal.setTime(dateFormat.parse(initialDate)); 

cal.add(Calendar.DAY_OF_MONTH, 7); 

convertedDate = cal.getTime(); 

String delayDate = dateFormat.format(convertedDate); 

} catch (ParseException e) { 
e.printStackTrace(); 
} 

我期待delayDate含有「2011-20-05 11:00:00」,而是它返回「2012-12 -01 11:00:00「,我不知道爲什麼

回答

1

它適用於我在桌面和Android設備上。不知道爲什麼你得到不正確的日期。

編輯:你使用了什麼特定的手機,它在什麼時區?

+0

這是在模擬器上,時區是GMT。 – fujih 2011-05-14 10:39:45

+0

所以我再次調試代碼,並意識到我做錯了什麼。 initialDate作爲參數傳入我的代碼中 - 我在上面的例子中提供了正確格式的日期,但傳遞參數的日期格式是yyyy-MM-dd HH:mm:ss。 – fujih 2011-05-14 11:03:39