总结一下GregorianCalendar
2008-03-14 09:07
459 查看
昨天弄那个搜索指定时间的月历的时候,遇到了个麻烦。以前只是知道GregorianCalendar calendar=new GregorianCalendar(); 可以得到当前的日期,但是无法解决输入问题,搞了好久才偶然之间发现了一个秘密。
我用System.out.println(calendar);得到了GregorianCalendar 的结果:java.util.GregorianCalendar[time=1158930431859,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2006,MONTH=8,WEEK_OF_YEAR=38,WEEK_OF_MONTH=4,DAY_OF_MONTH=22,DAY_OF_YEAR=265,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=4,AM_PM=1,HOUR=9,HOUR_OF_DAY=21,MINUTE=7,SECOND=11,MILLISECOND=859,ZONE_OFFSET=28800000,DST_OFFSET=0]
发现这得到的格林威治时间中,的日期原来是与此排布的,它只是先生成一个数组而已,至于以后的calendar.getTime();直接调用久行了,此时我才恍然大悟,这样的话就简单多了!
所以我就试着把输入的部分改为:Scanner input=new Scanner(System.in);int year=input.nextInt();int month=input.nextInt();int day=input.nextInt();GregorianCalendar calendar=new GregorianCalendar(year,month-1,day); 再System.out.println(calendar);就可以得到如下的结果了:java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=false,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=?,YEAR=2006,MONTH=9,WEEK_OF_YEAR=?,WEEK_OF_MONTH=?,DAY_OF_MONTH=12,DAY_OF_YEAR=?,DAY_OF_WEEK=?,DAY_OF_WEEK_IN_MONTH=?,AM_PM=?,HOUR=?,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=?,ZONE_OFFSET=?,DST_OFFSET=?]
这才解决了,我所要解决的问题,好兴奋啊!只是那个month-1,我试了好几次才试出来,原来是输入月份9,在GregorianCalendar的数组中为第八个的位置,所以才是这样的结果。
现在发现编程序也有许多快乐,继续努力啊
我用System.out.println(calendar);得到了GregorianCalendar 的结果:java.util.GregorianCalendar[time=1158930431859,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2006,MONTH=8,WEEK_OF_YEAR=38,WEEK_OF_MONTH=4,DAY_OF_MONTH=22,DAY_OF_YEAR=265,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=4,AM_PM=1,HOUR=9,HOUR_OF_DAY=21,MINUTE=7,SECOND=11,MILLISECOND=859,ZONE_OFFSET=28800000,DST_OFFSET=0]
发现这得到的格林威治时间中,的日期原来是与此排布的,它只是先生成一个数组而已,至于以后的calendar.getTime();直接调用久行了,此时我才恍然大悟,这样的话就简单多了!
所以我就试着把输入的部分改为:Scanner input=new Scanner(System.in);int year=input.nextInt();int month=input.nextInt();int day=input.nextInt();GregorianCalendar calendar=new GregorianCalendar(year,month-1,day); 再System.out.println(calendar);就可以得到如下的结果了:java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=false,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=?,YEAR=2006,MONTH=9,WEEK_OF_YEAR=?,WEEK_OF_MONTH=?,DAY_OF_MONTH=12,DAY_OF_YEAR=?,DAY_OF_WEEK=?,DAY_OF_WEEK_IN_MONTH=?,AM_PM=?,HOUR=?,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=?,ZONE_OFFSET=?,DST_OFFSET=?]
这才解决了,我所要解决的问题,好兴奋啊!只是那个month-1,我试了好几次才试出来,原来是输入月份9,在GregorianCalendar的数组中为第八个的位置,所以才是这样的结果。
现在发现编程序也有许多快乐,继续努力啊
相关文章推荐
- 总结一下eclipse中如何导入源码的问题
- 总结一下由对象名得到对象地址的方法
- 疑问: 方法重载到底是不是面向对象的多态性问题?(好几天了,做一下总结)
- JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结
- 修了下电脑,总结一下。
- 总结一下最近一段时间导出数据到Excel的几种方法
- 最近学的东西是该总结一下了
- CSS3选择器,详细归纳一下,算是一个工作总结
- 这几刚干完一个简单的项目,总结一下。本人是新手 第一次做项目,老手就不用看了
- 总结一下将近4个月没有整理博文的原因
- 总结一下这几天学习matlab学到的东西
- 总结一下排序算法
- 总结一下使用Emgucv的经验和经历
- make与makefile的几个例子和(自己写一下,汗!忘记了!)总结
- JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结
- 05_总结一下,以软件开发周期说明不同的测试使用
- 总结一下java获取路径几种途径
- 【转】总结一下String(Java)
- 总结一下我工作中常用到的一些linux命令
- 总结一下Windows常用的几种线程同步技术。