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