直言不讳。我们假设今天的日期是16-06-2015,设备日期与此匹配。我试图以这种格式阅读它,16062015。然而,日期显示落后一个月,即16052015.我的代码:
public String getDate() {
Calendar cal = Calendar.getInstance();
int day = cal.get(Calendar.DAY_OF_MONTH);
int month = cal.get(Calendar.MONTH);
int year = cal.get(Calendar.YEAR);
String dayString = String.valueOf(day);
String monthString = String.valueOf(month);
String yearString = String.valueOf(year);
String date = dayString + "0" + monthString + yearString;
return date;
}
可能是什么问题?
这是在J2ME中。设备:诺基亚206。
答案 0 :(得分:2)
int month = cal.get(Calendar.MONTH);
1月份返回0,2月份返回1岁......这就是为什么代码的行为方式。因此,一个简单的解决方案是:
int month = cal.get(Calendar.MONTH) + 1;
顺便说一下:在十月,十一月和十二月,你会遇到一个额外的问题。 (提示:它们有2位数字。)
答案 1 :(得分:1)
如ISO日期所示,使用Jan作为1
。根据文档,月份字段为0,因此Jan为0
。
http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html#set%28int,%20int,%20int%29