先看code:
Calendar cal = Calendar.getInstance();
cal.set(1, 2000);
cal.set(2, 0);
cal.set(5, 1);
cal.set(11, 12);
cal.set(12, 0);
cal.set(13, 0);
cal.set(14, 0);
Date startDate = cal.getTime();
cal.set(5, 5);
Date endDate = cal.getTime();
System.out.println("startDate is : " + startDate.toString());
System.out.println("endDate is : " + endDate.toString());
得出的结果是:
startDate is : Wed Jan 05 12:00:00 GMT+00:00 2000
endDate is : Wed Jan 05 12:00:00 GMT+00:00 2000
我晕了,为什么startDate不是1月1日啊?
cal.set(5, 5); //设置DAY_OF_MONTH为5
怎么把startDate也改掉了?晕倒!!
------解决方案--------------------------------------------------------
设置下GMT+8
------解决方案--------------------------------------------------------
我这边完全可以的
startDate就是 1.1
我看了Calendar.getTime()方法,源代码如下
public final Date getTime() {
return new Date(getTimeInMillis());
}
它返回的一个新的Date对象, 不知道是不是版本问题
如果是这样的话 ,建议你用
startDate = new Date(cal.getTimeInMills());
------解决方案--------------------------------------------------------
哦,原来是J2ME,可能实现上有所不同
你可以翻源代码看看
我想我最后列出的解决方案可以帮助你的
------解决方案--------------------------------------------------------
我输出来的是这样:
startDate is : Sat Jan 01 13:13:13 UTC 2000
endDate is : Wed Jan 05 13:13:13 UTC 2000
???
------解决方案--------------------------------------------------------
我输出的结果:startDate is : Sat Jan 01 12:00:00 CST 2000
endDate is : Wed Jan 05 12:00:00 CST 2000
楼主是不是晕了呀!