J2ME中的日期问题

时间:2015-06-16 15:07:09

标签: java java-me

直言不讳。我们假设今天的日期是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。

2 个答案:

答案 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