J2ME 中的日期问题

Date Issue in J2ME

开门见山地说说这一点。假设今天的日期是 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.

显示的 ISO 日期使用 Jan 作为 1。根据文档,月份字段以 0 为基数,因此 Jan 为 0.

http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html#set%28int,%20int,%20int%29

int month = cal.get(Calendar.MONTH);

returns 0 表示 1 月,1 表示 2 月,...这就是您的代码以其方式运行的原因。所以一个简单的解决方法是:

int month = cal.get(Calendar.MONTH) + 1;

顺便说一句:在十月、十一月和十二月,您会遇到一个额外的问题。 (提示:它们有 2 个数字。)