日期:2014-05-20  浏览次数:20688 次

Calendar的问题,大家帮帮忙
我通过task.getCalendar()得到一个类型为Calendar的值,其中一个值是这样的:
task.getCalendar() = java.util.GregorianCalendar[time=1212969600000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,
zone=sun.util.calendar.ZoneInfo[id="GMT",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],
firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2008,MONTH=5,WEEK_OF_YEAR=24,WEEK_OF_MONTH=2,DAY_OF_MONTH=9,DAY_OF_YEAR=161,DAY_OF_WEEK=2,
DAY_OF_WEEK_IN_MONTH=2,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=0,DST_OFFSET=0]

Calendar b = task.getCalendar(); //把值赋给b 为了方便啊
按道理b.DATE b.DAY_OF_WEEK b.DAY_OF_MONTH b.DAY_OF_YEAR都会可以拿到上面的对应值啊,可是拿到的都是错误的。
更奇怪的是无论task.getCalendar()的值如何变化
b.DATE b.DAY_OF_WEEK b.DAY_OF_MONTH b.DAY_OF_YEAR这几个值就是不变。
谁知道这是什么原因啊。
小弟在这里谢过了!!! 大家周末愉快

------解决方案--------------------
Date b=task.getTime();
String str=b.toString;//str就是当前系统的时间,用字符串表示
楼主试试这句,能不能得到你要的时间。
如果要修改时间的输出格式,试试SimpleDateFormat类,配合Calendar类使用,可以得到任何你想要的时间格式。

------解决方案--------------------
b.DATE b.DAY_OF_WEEK b.DAY_OF_MONTH b.DAY_OF_YEAR这几个值就是不变。 
这几个值是常量,不会变的,
你如果需要得到Date

b.get(Calendar.DATE);
...
其余类似
------解决方案--------------------
楼上正解。楼上正解。
这下不短了吧。
------解决方案--------------------
怎么说呢,那几个值都是Calendar中的常量,是不会变的
------解决方案--------------------
探讨
b.DATE b.DAY_OF_WEEK b.DAY_OF_MONTH b.DAY_OF_YEAR这几个值就是不变。
这几个值是常量,不会变的,
你如果需要得到Date

b.get(Calendar.DATE);
...
其余类似

------解决方案--------------------
呵呵 ....................
------解决方案--------------------
探讨
引用:
b.DATE b.DAY_OF_WEEK b.DAY_OF_MONTH b.DAY_OF_YEAR这几个值就是不变。
这几个值是常量,不会变的,
你如果需要得到Date

b.get(Calendar.DATE);
...
其余类似

4楼正解


Java code
import java.util.Calendar;

public class Test {
/**
* @param args
*/
public static void main(String[] args) {
Calendar c = Calendar.getInstance();


------解决方案--------------------
Calendar.toString 得到文本中的大写形式与相应常量名相同是为了说明相应的值可以使用 Calendar.get(Calendar.XXX); 的方式得到。
------解决方案--------------------
楼主可以看下Calendar 的源码,其实是个比较简单的javabean,你自己写的类不是也有set和get方法吗,Calendar 也是一样,没什么特别的,只不过sun认为把所有的取时间的各种方法都写出来太没必要了,所以把取时间和改时间的方法简化了,程序员通过一些约定的字段改变或获取时间。
------解决方案--------------------
探讨
引用:
b.DATE b.DAY_OF_WEEK b.DAY_OF_MONTH b.DAY_OF_YEAR这几个值就是不变。
这几个值是常量,不会变的,
你如果需要得到Date

b.get(Calendar.DATE);
...
其余类似

4楼正解


Java code
import java.util.Calendar;

public class Test {
/**
* @param args
*/
public static void main(String[] args) {
Calendar c = Calendar.getInstance();


------解决方案--------------------
探讨
b.DATE b.DAY_OF_WEEK b.DAY_OF_MONTH b.DAY_OF_YEAR这几个值就是不变。
这几个值是常量,不会变的,
你如果需要得到Date

b.get(Calendar.DATE);
...
其余类似

------解决方案--------------------