我正在尝试将{89}天添加到CurrentDate
到GregorianCalendar
,这将于2015年4月31日返回。以下是代码段。
Calendar now = Calendar.getInstance();
String dt="31012013";
now.set(Integer.parseInt(dt.substring(4)),Integer.parseInt(dt.substring(2,4)),Integer.parseInt(dt.substring(0,2)));
now.add(Calendar.DATE, 89);
String matdate=Integer.toString(now.get(Calendar.DATE))+ "/"+ (now.get(Calendar.MONTH) ) +"/" + now.get(Calendar.YEAR);
执行此代码后,matdate
值将显示为 31/04/2013
答案 0 :(得分:5)
这是因为java.util.Calendar
个月以 0而不是1 开头,也就是说,4是5月。除了格式化日期的最佳方法是java.text.SimpleDateFormat
String matdate = new SimpleDateFormat("dd/MM/yyyy").format(now.getTime()));
或者更好地使用Joda-Time库来处理与日历和时间相关的代码。