Java:Calendar类

我们现在已经能够格式化并创建一个日期对象了,但是我们如何才能设置和获取日期数据的特定部分呢,比如说小时,日,或者分钟? 我们又如何在日期的这些部分加上或者减去值呢?

答案是使用Calendar 类。

Calendar类的功能要比Date类强大很多。

Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。

Calendar c = Calendar.getInstance();//默认是当前日期
 

如果使用Calendar类代表特定的时间,需要首先创建一个Calendar的对象,然后再设定该对象中的年月日参数来完成。

set方法形参

public final void set(int year,int month,int date)

Calendar类对象字段类型

Java:Calendar类_第1张图片

举例:

利用字段类型设置

set设置

只设定某个字段,例如日期的值,则可以使用如下set方法:

public void set(int field,int value)

把 c1对象代表的日期设置为10号,其它所有的数值会被重新计算

c1.set(Calendar.DATE,10);
 

Calendar类月份是0-11月  0代表实际1月份。

其他同理。

add设置

把c1对象的日期加上10,也就是c1也就表示为10天后的日期,其它所有的数值会被重新计算

c1.add(Calendar.DATE, 10);
 

同理如果减去10该怎么写?

直接把10改成-10即可。

示例代码:

Calendar c1 = Calendar.getInstance();
// 获得年份
int year = c1.get(Calendar.YEAR);
// 获得月份  在这里要加1才能得到真正的月份
int month = c1.get(Calendar.MONTH) + 1;
// 获得日期
int date = c1.get(Calendar.DATE);
// 获得小时
int hour = c1.get(Calendar.HOUR_OF_DAY);
// 获得分钟
int minute = c1.get(Calendar.MINUTE);
// 获得秒
int second = c1.get(Calendar.SECOND);
// 获得星期几(注意(这个与Date类是不同的):1代表星期日、2代表星期1、3代表星期二,以此类推)
int day = c1.get(Calendar.DAY_OF_WEEK);

Calender类的方法

get(field):获取指定字段的值

set(field, value):设置指定字段的值

add(field, amount):在指定字段上添加或减去指定的数量

getTime():将Calendar对象转换为Date对象

setTime(date):将Date对象设置给Calendar对象。

getActualMaximum(field):获取指定字段的最大值

getActualMinimum(field):获取指定字段的最小值

setTimeInMillis(milliseconds):将指定的毫秒数设置给Calendar对象。

Calendar calendar = Calendar.getInstance();
long milliseconds = System.currentTimeMillis();
calendar.setTimeInMillis(milliseconds);

你可能感兴趣的:(java,java,开发语言)