Java中日历Calendar用户
Calendar它为特定瞬间与一组诸如 YEAR(年)、MONTH(月)、DAY_OF_MONTH(天)、HOUR(小时) 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
构造方法
protected Calendar() :由于修饰符是protected,所以无法直接创建该对象。需要通过别的途径生成该对象。
常使用类中的静态方法:Calendar instance = Calendar.getInstance();
成员方法
项目 | Value |
---|---|
static Calendar getInstance() | 使用默认时区设置获取日历。通过该方法生成Calendar对象 |
public int get(int field) | 返回给定日历字段的值。所谓字段就是年、月、日等等。 |
public void setTime(Date date) | 使用给定的Date设置此日历的时间。Date------Calendar 类似初始化时间 |
abstract void add(int field,int amount) | 按照日历的规则,给指定字段添加或减少时间。 |
public long getTimeInMillies() | 以毫秒为单位返回该日历的时间值。 |
日历字段
时间 | 单位 | 运用(得到的常量值,在get(int a)和add(int a, int b)) |
---|---|---|
YEAR | 年 | Calendar.YEAR |
MINUTE | 分 | Calendar.MINUTE |
DAY_OF_WEEK_IN_MONTH | 某月中第几周 | Calendar.DAY_OF_WEEK_IN_MONTH |
MONTH | 月 | Calendar.MONTH |
SECOND/MILLISECOND | 秒/毫秒 | Calendar.SECOND/Calendar.MILLISECOND |
WEEK_OF_MONTH | 日历式的第几周 | Calendar.WEEK_OF_MONTH |
DATE | 日 | Calendar.DATE |
DAY_OF_MONTH | 和DATE一样 | Calendar.DAY_OF_MONTH |
DAY_OF_YEAR | 一年的第多少天 | Calendar.DAY_OF_YEAR |
HOUR_OF_DAY | 时 | Calendar.HOUR_OF_DAY |
DAY_OF_WEEK | 周几 | Calendar.DAY_OF_WEEK |
WEEK_OF_YEAR | 一年的第多少周 | Calendar.WEEK_OF_YEAR |
AM_PM | 1 上午或者 0 下午 | Calendar.AM_PM |
常见例子
// 其日历字段已由当前日期和时间初始化:
Calendar instance= Calendar.getInstance(); // 子类对象
// 获取年
int year = instance.get(Calendar.YEAR);
// 获取月 从0开始
int month = instance.get(Calendar.MONTH);
// 获取日
int date = instance.get(Calendar.DATE);
//获取几点
int hour=instance.get(Calendar.HOUR_OF_DAY);
//获取上午下午
int moa=instance.get(Calendar.AM_PM);
if(moa==1)
System.out.println("下午");
else
System.out.println("上午");
//当前年数加上5年
instance.add(Calendar.YEAR,5);
//当前天数减去10天
instance.add(Calendar.DATE, -10);
int year1 = instance.get(Calendar.YEAR);
int date1 = instance.get(Calendar.DATE);
//初始话时间
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Date d1 = sdf.parse("2020-05-20");
instance.setTime(d1);
instance.add(Calendar.DAY_OF_MONTH,1); //增加1天
instance.add(5,1); //也是增加1天 Calendar.DAY_OF_MONTH=5
System.out.println(instance.getTime()); //获取时间