我正在尝试通过 GregorianCalendar
返回 2015 年 4 月 31 日,向 CurrentDate
添加 89 天。下面是代码片段。
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
最佳答案
这是因为java.util.Calendar
月份以 0 而不是 1 开头,即 4 是五月。此外,格式化日期的最佳方法是 java.text.SimpleDateFormat
String matdate = new SimpleDateFormat("dd/MM/yyyy").format(now.getTime()));
或者更好地使用Joda-Time日历和时间相关代码的库。
关于java - java中公历的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14607358/