Calendar類是我們在工作中經常用到時間相關的一個工具類;比如月初、月末、年初、年末、指定月份所在季度的季末等操作,對它有更深入的了解,在工作中會起到事半功倍的效果,下面就來了解一下吧!!!
**一.Calendar類概述
Calendar是日歷類,該類將所有可能用到的時間信息封裝為靜態成員變量,方便獲取。常用方法如下如下:
//根據日歷的規則,為給定的日歷字段添加或減去指定的時間量。
abstract void add(int field, int amount)
//判斷此 Calendar 表示的時間是否在指定 Object 表示的時間之后,返回判斷結果。
boolean after(Object when)
// 判斷此 Calendar 表示的時間是否在指定 Object 表示的時間之前,返回判斷結果。
boolean before(Object when)
//給定此 Calendar 的時間值,返回指定日歷字段可能擁有的最大值。
int getActualMaximum(int field)
// 給定此 Calendar 的時間值,返回指定日歷字段可能擁有的最小值。
int getActualMinimum(int field)
// 獲取一星期的第一天;例如,在美國,這一天是 SUNDAY,而在法國,這一天是 MONDAY。
int getFirstDayOfWeek()
//返回此 Calendar 實例給定日歷字段的最高的最小值。
abstract int getGreatestMinimum(int field)
//使用默認時區和語言環境獲得一個日歷。
static Calendar getInstance()
//使用默認時區和指定語言環境獲得一個日歷。
static Calendar getInstance(Locale aLocale)
// 使用指定時區和默認語言環境獲得一個日歷。
static Calendar getInstance(TimeZone zone)
//使用指定時區和語言環境獲得一個日歷。
static Calendar getInstance(TimeZone zone, Locale aLocale)
//返回此 Calendar 實例給定日歷字段的最低的最大值。
abstract int getLeastMaximum(int field)
//返回此 Calendar 實例給定日歷字段的最大值。
abstract int getMaximum(int field)
// 獲取一年中第一個星期所需的最少天數,例如,如果定義第一個星期包含一年第一個月的第一天,則此方法將返回 1。
int getMinimalDaysInFirstWeek()
// 設置一星期的第一天是哪一天;例如,在美國,這一天是 SUNDAY,而在法國,這一天是 MONDAY。
void setFirstDayOfWeek(int value)
// 設置一年中第一個星期所需的最少天數,例如,如果定義第一個星期包含一年第一個月的第一天,則使用值 1 調用此方法。
void setMinimalDaysInFirstWeek(int value)
// 使用給定的 Date 設置此 Calendar 的時間。
void setTime(Date date)
// 用給定的 long 值設置此 Calendar 的當前時間值。
void setTimeInMillis(long millis)
//返回此日歷的字符串表示形式。
String toString()
注:Calendar類的屬性有很多,比如:
YEAR 年
MONTH 月(注意:從0開始算起,最大11;0代表1月,11代表12月)
DATE 天
HOUR 時
MINUTE分
SECOND秒
**二.使用案列如下:
Calendar calendar=Calendar.getInstance(); //通過getInstance方法獲取Calendar的引用;
calendar.setTime(new Date());
System.out.println("現在時間是:"+new Date());
String year=String.valueOf(calendar.get(Calendar.YEAR)); //現在是那一年
String month=String.valueOf(calendar.get(Calendar.MONTH)+1); //現在是幾月份
String day=String.valueOf(calendar.get(Calendar.DAY_OF_MONTH)); //現在是月份的第幾天
String week=String.valueOf(calendar.get(Calendar.DAY_OF_WEEK)-1); //現在是星期幾
System.out.println("現在時間是:"+year+"年"+month+"月"+day+"日,星期"+week);
long year2016=calendar.getTimeInMillis();
calendar.set(1989,9,26);//這里與真實的月份之間相差1 //設置時間 (year,month,day)
long year1989=calendar.getTimeInMillis();
long days=(year2016-year1989)/(1000*60*60*24);
System.out.println("今天和1989年10月26日相隔"+days+"天,"+"也就是說我在這個美麗的星球上已經幸福的生活了"+days+"天。");
System.out.println(calendar.get(Calendar.DAY_OF_YEAR)); //獲取設置后的那天是當年中的第幾天
System.out.println(calendar.get(Calendar.DAY_OF_MONTH)); //獲取設置后的那天是當月中的第幾天
System.out.println(calendar.get(Calendar.DAY_OF_WEEK));//獲取設置后的那天是當星期中的第幾天