學習筆記,僅供參考
Calendar類
Calendar類是java.util包下的一個類,使用該類時需要導包。
Calendar
類是一個抽象類,它爲特定瞬間與一組諸如 YEAR
、MONTH
、DAY_OF_MONTH
、HOUR
等 日曆字段
之間的轉換提供了一些方法,併爲操作日曆字段(例如獲得下星期的日期)提供了一些方法。
字段
字段 | 定義 | 詳情 |
---|---|---|
YEAR | public static final int YEAR |
這是一個特定於日曆的值 |
MONTH | public static final int MONTH |
在格里高利曆和羅馬儒略曆中一年中的第一個月是 JANUARY,它爲 0; |
WEEK_OF_YEAR | public static final int WEEK_OF_YEAR |
當前年中的星期數,一年中第一個星期的值爲 1 |
WEEK_OF_MONTH | public static final int WEEK_OF_MONTH |
當前月中的星期數,一個月中第一個星期的值爲 1 |
DATE | public static final int DATE |
一個月中的某天,一個月中第一天的值爲 1,它與 DAY_OF_MONTH 是同義詞 |
DAY_OF_MONTH | public static final int DAY_OF_MONTH |
一個月中的某天,它與 DATE 是同義詞,一個月中第一天的值爲 1。 |
DAY_OF_YEAR | public static final int DAY_OF_YEAR |
當前年中的天數,一年中第一天的值爲 1。 |
DAY_OF_WEEK | public static final int DAY_OF_WEEK |
一個星期中的某天。該字段可取的值爲 SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY 和 SATURDAY。 |
DAY_OF_WEEK_IN_MONTH | public static final int DAY_OF_WEEK_IN_MONTH |
當前月中的第幾個星期。與 DAY_OF_WEEK 字段一起使用時,就可以唯一地指定某月中的某一天。 |
AM_PM | public static final int AM_PM |
指示 HOUR 是在中午之前還是在中午之後。 例如,在 10:04:15.250 PM 這一時刻,AM_PM 爲 PM。 |
HOUR | public static final int HOUR |
HOUR 用於 12 小時制時鐘 (0 - 11)。中午和午夜用 0 表示,不用 12 表示 |
HOUR_OF_DAY | public static final int HOUR_OF_DAY |
一天中的小時。HOUR_OF_DAY 用於 24 小時制時鐘。 |
MINUTE | public static final int MINUTE |
一小時中的分鐘。 |
SECOND | public static final int SECOND |
一分鐘中的秒 |
成員方法
public static Calendar getInstance()
//使用默認時區和語言環境獲得一個日曆。
//返回的Calendar基於當前時間,使用了默認時區和默認語言環境。
public int get(int field)
public void add(int field,int amount)
//爲給定的日曆字段添加或減去指定的時間量。例如,要從當前日曆時間減去5天
public final void set(int year,int month,int date)
//設置日曆字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。保留其他日曆字段以前的值。如果不需要這樣做,則先調用 clear()。
- 舉個例子1
package com.guiyang.restudy3;
import java.util.Calendar;
public class D8Calendar {
public static void main(String[] args) {
Calendar c = Calendar.getInstance(); //父類引用指向子類對象
System.out.println(c); //重寫了toString方法打印了對象中所有的屬性
System.out.println(c.get(Calendar.YEAR)); //通過字段獲取對應的值
System.out.println(c.get(Calendar.MONTH));
System.out.println(c.get(Calendar.DAY_OF_YEAR));
System.out.println(c.get(Calendar.DAY_OF_WEEK)); //週六爲最後一天,週日爲第1天
}
}
輸出:
java.util.GregorianCalendar[time=1593223090351,areFieldsSet=true,
areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",
offset=28800000,dstSavings=0,useDaylight=false,transitions=19,
lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,
YEAR=2020,MONTH=5,WEEK_OF_YEAR=26,WEEK_OF_MONTH=4,DAY_OF_MONTH=27,
DAY_OF_YEAR=179,DAY_OF_WEEK=7,DAY_OF_WEEK_IN_MONTH=4,AM_PM=0,HOUR=9,
HOUR_OF_DAY=9,MINUTE=58,SECOND=10,MILLISECOND=351,ZONE_OFFSET=28800000,DST_OFFSET=0]
2020
5
179
7
- 舉個例子2
package com.guiyang.restudy3;
import java.util.Calendar;
public class D9Calender {
public static void main(String[] args) {
Calendar c = Calendar.getInstance(); //父類引用指向子類對象
c.set(1997, 8, 28);
System.out.println(c.get(Calendar.YEAR) + "年" + getNum((c.get(Calendar.MONTH)+1))
+ "月" + getNum(c.get(Calendar.DAY_OF_MONTH))
+ "日" + getWeek(c.get(Calendar.DAY_OF_WEEK)));
c.add(Calendar.MONTH, -2);
System.out.println(c.get(Calendar.YEAR) + "年" + getNum((c.get(Calendar.MONTH)+1))
+ "月" + getNum(c.get(Calendar.DAY_OF_MONTH))
+ "日" + getWeek(c.get(Calendar.DAY_OF_WEEK)));
}
public static String getWeek(int week) {
String[] arr = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
return arr[week];
}
public static String getNum(int num) {
return num > 9 ? "" + num : "0" + num;
}
}
輸出:
1997年09月28日星期日
1997年07月28日星期一