在日期格式化一文中我曾经简单的叙述了从一个java.util.Date日期类输出定制日期格式文本的方法。今天我们将进入一个真正的难题,去了解java中真正的日期对象Calendar类,并且在分析过程中建立一个实用swing日历Bean。
本人曾经在网上搜索过一些实用swing日历,但他们的实现都比较复杂,在这里我们将只使用一个类和标准的swing组件来实现这个日历,从而使这个Bean可以简单的被复用到别处。
一、Calendar是什么? Calendar类是java标准库提供的日历工具类,它是一个抽象类。在它之中定义了很多有用的方法,最有用的就是可以自由变换日期和时间的set方法,以及得到定制日期输出的get方法。因为Calendar是一个抽象类,所以它不能使用new方法创建实例,它需要使用下面这个方法得到实例:Calendar calendar=Calendar.getInstance();
在Calendar类中把日期分成年、月、日、时、分、秒、微秒、星期八个部分,每一个部分又有一个或多个域(Field)与之对应,在使用set或get方法时,实际上是通过这些域来访问的。每一个域都是一个静态整型常量,它们是: 域 代表意义
AM_PM 上午/下午标志 DATE 完整日期标志 DAY_OF_MONTH 本月第几天
DAY_OF_WEEK 星期几
DAY_OF_WEEK_IN_MONTH (尚未理解)
DAY_OF_YEAR 本年度的第几天 DST_OFFSET
时区偏移 量 ERA 公元标志
HOUR 小时(12小时制,分上下午) HOUR_OF_DAY 小时(24小时制,不分上下午)
MILLISECOND 微秒 MINUTE 分钟
MONTH 月份 SECOND 秒
WEEK_OF_MONTH 本月第几个星期
WEEK_OF_YEAR 本年度的第几个星期
YEAR 年份
ZONE_OFFSET 相对GMT时区的微秒级时间偏移
除了通过set和get方法访问域值的功能外,Calendar还提供了一些有用的方法:
方法 参数 意义
getActualMaximum int field 得到当前时间指定域值的最大值 getActualMinimum 同上
得到当前时间指定域值的最小值 getFirstDayOfWeek 空 得到当前时区一个星期第一天的表示,
如:在美国星期天是一个星期的第一天;
在法国则是星期一。 getTime 空
返回一个java.util.Date日期对象 getTimeInMillis 空 返回当前时间的微秒累计值,就像 java.util.Date中的getTime方法一样 getTimeZone 空
返回当前时区 isSet int field 设置域是否可以改写 setFirstDayOfWeek int value
设置当前时区一个星期第一天的表示, 如:在美国星期天是一个星期的第一天; 在法国则是星期一。 setTime
Date date
为当前日历重新设置一个java.util.Date
日期对象作为当前时间 setTimeInMillis 空 设置一个时间的微秒累计值作为当前时间 setTimeZone TimeZone value 设置当前的时区
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务