我试图获得1个月前的日期和时间,但我得到的是2013年11 02,正确的应该是2013 12 02 pls help。
我的代码如下: -
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, -1);
int thisYear = calendar.get(Calendar.YEAR);
int thisMonth = calendar.get(Calendar.MONTH);
int thisDay = calendar.get(Calendar.DAY_OF_MONTH);
答案 0 :(得分:7)
您的代码是正确的,我认为月份是零索引;)
试试这个,
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, -1);
Date date = calendar.getTime();
SimpleDateFormat format = new SimpleDateFormat("yyyy MM dd");
String dateOutput = format.format(date);
这应该以逻辑单位而不是内部表示法来解释你的日期值
查看SimpleDateFormat
的文档以获得更加自定义的方法,我只根据您的问题文本做了一些假设。
答案 1 :(得分:3)
你可以试试这个
Calendar calendar = Calendar.getInstance();
if(calendar.get(Calendar.MONTH) == Calendar.JANUARY){
calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR)-1);
calendar.set(Calendar.MONTH, calendar.DECEMBER);
}else{
calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH)-1);
}
int thisYear = calendar.get(Calendar.YEAR);
int thisMonth = calendar.get(Calendar.MONTH);
int thisDay = calendar.get(Calendar.DAY_OF_MONTH);