欢迎大家来到IT世界,在知识的湖畔探索吧!
如果我们想在Java程序中去设置和获取日期的特定部分的时候,我们将如何去做呢?今天小编将为大家带来大数据编程入门:Java Calendar类。
一、Java Calendar类
Calendar类比Date类强大得多,它的实现比Date类复杂得多。
Calendar类是一个抽象类,它实现了实际使用中特定的子类对象。创建对象的过程对程序员来说是透明的,只需使用getInstance方法来创建对象。
1、创建一个代表系统当前日期的Calendar对象
Calendar c = Calendar.getInstance();//默认是当前日期
2、创建一个指定日期的Calendar对象
要使用calendar类表示特定的时间,首先需要创建一个Calendar对象,然后在该对象中设置月、年和日参数。
//创建一个代表2009年6月12日的Calendar对象
Calendar c1 = Calendar.getInstance();
c1.set(2009, 6 – 1, 12);
3、Calendar类对象字段类型
Calendar类使用以下常量来表示不同的含义,jdk中的许多类实际上都采用了这种思想。
常量 |
描述 |
Calendar.YEAR |
年份 |
Calendar.MONTH |
月份 |
Calendar.DATE |
日期 |
Calendar.DAY_OF_MONTH |
日期 |
Calendar.HOUR |
12小时制的小时 |
Calendar.HOUR_OF_DAY |
24小时制的小时 |
Calendar.MINUTE |
分钟 |
Calendar.SECOND |
秒 |
Calendar.DAY_OF_WEEK |
星期几 |
4、Calendar类对象信息的设置
① Set设置
如:
Calendar c1 = Calendar.getInstance();
调用:
public final void set(int year,int month,int date)
c1.set(2009, 6, 12);//把Calendar对象c1的年月日分别设置为:2009、6、12
使用字段类型设置
如果只设置某个字段的值,如日期,则可以使用以下set方法:
public void set(int field,int value)
将C1对象表示的日期设置为10号,所有其他值都将重新计算
c1.set(Calendar.DATE,10);
将C1对象表示的年份设置为2008,所有其他值都将重新计算
c1.set(Calendar.YEAR,2008);
其他字段属性set的意义以此类推
② Add设置
Calendar c1 = Calendar.getInstance();
C1对象的日期加10,即C1代表10天后的日期,其它所有值都将重新计算
c1.add(Calendar.DATE, 10);
c1对象的日期减10,即c1代表10天前的日期,其它所有值会被重新计算
c1.add(Calendar.DATE, -10);
其他字段属性的add的意义以此类推
5、Calendar类对象信息的获得
二、GregorianCalendar类
Calendar类实现了公历,GregorianCalendar是Calendar类的一个具体实现。
Calendar的getInstance()方法返回一个GregorianCalendar对象,默认情况下使用当前语言环境和时区初始化。GregorianCalendar定义了两个字段:AD和BC。这是代表公历定义的两个时代。
以下是GregorianCalendar对象的构造方法:
构造函数 |
说明 |
GregorianCalendar() |
在具有默认语言环境的默认时区内使用当前时间构造一个默认的 GregorianCalendar。 |
GregorianCalendar(int year, int month, int date) |
在具有默认语言环境设置的默认时区中构造具有给定日期设置的GregorianCalendar。 |
GregorianCalendar(int year, int month, int date, int hour, int minute) |
为具有默认语言环境设置的默认时区构造具有给定日期和时间设置的GregorianCalendar。 |
GregorianCalendar(int year, int month, int date, int hour, int minute, int second) |
为具有默认语言环境设置的默认时区构造具有给定日期和时间设置的GregorianCalendar。 |
GregorianCalendar(Locale aLocale) |
在具有给定语言环境的默认时区内构造一个基于当前时间的 GregorianCalendar。 |
GregorianCalendar(TimeZone zone) |
在具有默认语言环境的给定时区内构造一个基于当前时间的 GregorianCalendar。 |
GregorianCalendar(TimeZone zone, Locale aLocale) |
在具有给定语言环境的给定时区内构造一个基于当前时间的 GregorianCalendar。 |
以下是GregorianCalendar 类提供的一些有用的方法列表:
方法 |
说明 |
void add(int field, int amount) |
根据日历规则,将指定的(有符号的)时间量添加到给定的日历字段中。 |
protected void computeFields() |
转换UTC毫秒值为时间域值 |
protected void computeTime() |
覆盖Calendar ,转换时间域值为UTC毫秒值 |
boolean equals(Object obj) |
比较此 GregorianCalendar 与指定的 Object。 |
int get(int field) |
获取指定字段的时间值 |
int getActualMaximum(int field) |
返回当前日期,给定字段的最大值 |
int getActualMinimum(int field) |
返回当前日期,给定字段的最小值 |
int getGreatestMinimum(int field) |
返回此 GregorianCalendar 实例给定日历字段的最高的最小值。 |
Date getGregorianChange() |
获得格里高利历的更改日期。 |
int getLeastMaximum(int field) |
返回此 GregorianCalendar 实例给定日历字段的最低的最大值 |
int getMaximum(int field) |
返回此 GregorianCalendar 实例的给定日历字段的最大值。 |
Date getTime() |
获取日历当前时间。 |
long getTimeInMillis() |
获取用长整型表示的日历的当前时间 |
TimeZone getTimeZone() |
获取时区。 |
int getMinimum(int field) |
返回给定字段的最小值。 |
int hashCode() |
重写hashCode. |
boolean isLeapYear(int year) |
确定给定的年份是否为闰年。 |
void roll(int field, boolean up) |
在给定的时间字段上添加或减去(上/下)单个时间单元,不更改更大的字段。 |
void set(int field, int value) |
用给定的值设置时间字段。 |
void set(int year, int month, int date) |
设置年、月、日的值。 |
void set(int year, int month, int date, int hour, int minute) |
设置年、月、日、小时、分钟的值。 |
void set(int year, int month, int date, int hour, int minute, int second) |
设置年、月、日、小时、分钟、秒的值。 |
void setGregorianChange(Date date) |
设置 GregorianCalendar 的更改日期。 |
void setTime(Date date) |
用给定的日期设置Calendar的当前时间。 |
void setTimeInMillis(long millis) |
用给定的long型毫秒数设置Calendar的当前时间。 |
void setTimeZone(TimeZone value) |
用给定时区值设置当前时区。 |
String toString() |
返回代表日历的字符串。 |
示例:
运行结果:
以上就是关于大数据编程入门:Java Calendar类的全部内容了,希望这篇文章能够帮助到大家~
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/37685.html