2011-05-13 109 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