Java 中的日历函数
java 8object oriented programmingprogramming更新于 2025/12/4 10:52:17
java.util.calendar 类提供 Java 中的日历函数。是一个抽象类,提供在特定时刻和一组日历字段(如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等)之间进行转换的方法,以及操作日历字段(如获取下一周的日期)的方法。
以下是 Java 中的日历函数 −
| Sr.No | 方法 &描述 |
|---|---|
| 1 | abstract void add(int field, int amount) 此方法根据日历的规则,将指定的时间量添加或减去给定日历字段。 |
| 2 | boolean after(Object when) 此方法返回此日历是否表示在指定对象所表示的时间之后的时间。 |
| 3 | boolean before(Object when) 此方法返回此日历是否表示在指定对象所表示的时间之前的时间。 |
| 4 | void clear() 此方法设置所有日历字段值和时间值(毫秒偏移量 |
| 5 | void clear(int field) 此方法设置此日历的给定日历字段值和时间值(与纪元的毫秒偏移量)未定义。 |
| 6 | Object clone() 此方法创建并返回此对象的副本。 |
| 7 | int compareTo(Calendar anotherCalendar) 此方法比较两个 Calendar 对象所表示的时间值(与纪元的毫秒偏移量)。 |
| 8 | protected void complete() 此方法填充日历中任何未设置的字段fields. |
| 9 | protected abstract void computeFields() 此方法将当前毫秒时间值 time 转换为 fields[] 中的日历字段值。 |
| 10 | protected abstract void computeTime() 此方法将 fields[] 中的当前日历字段值转换为毫秒时间值 time。 |
| 11 | boolean equals(Object obj) 此方法将此日历与指定的对象进行比较。 |
| 12 | int get(int field) 此方法返回给定日历字段的值。 |
| 13 | int getActualMaximum(int field) 此方法返回在给定此日历的时间值的情况下指定日历字段可能具有的最大值。 |
| 14 | int getActualMinimum(int field) 此方法返回在给定此日历的时间值的情况下指定日历字段可能具有的最小值。 |
| 15 | static Locale[] getAvailableLocales() 此方法返回所有语言环境的数组,此类的 getInstance 方法可返回这些语言环境的本地化实例。 |
| 16 | String getDisplayName(int field, int style, Locale locale) 此方法返回给定样式和语言环境中日历字段值的字符串表示形式。 |
| 17 | Map<String,Integer> getDisplayNames(int field, int style, Locale locale) 此方法返回一个 Map,其中包含给定样式和语言环境的所有日历字段名称及其对应的字段值。 |
| 18 | int getFirstDayOfWeek() 此方法获取一周的第一天;例如,美国的星期日,法国的星期一。 |
| 19 | abstract int getGreatestMinimum(int field) 此方法返回此 Calendar 实例的给定日历字段的最高最小值。 |
| 20 | static Calendar getInstance() 此方法使用默认时区和语言环境获取日历。 |
| 21 | static Calendar getInstance(Locale aLocale) 此方法使用默认时区和指定语言环境获取日历。 |
| 22 | static Calendar getInstance(TimeZone zone) 此方法使用指定的时区和默认语言环境。 |
| 23 | static Calendar getInstance(TimeZone zone, Locale aLocale) 此方法获取具有指定时区和语言环境的日历。 |
| 24 | abstract int getLeastMaximum(int field) 此方法返回此 Calendar 实例的给定日历字段的最低最大值。 |
| 25 | abstract int getMaximum(int field) 此方法返回此 Calendar 实例的给定日历字段的最大值。 |
| 26 | int getMinimalDaysInFirstWeek() 此方法获取一年中第一周所需的最少天数;例如,如果将第一周定义为包含一年中第一个月的第一天的一周,则此方法返回 1。 |
| 27 | abstract int getMinimum(int field) 此方法返回此 Calendar 实例的给定日历字段的最小值。 |
| 28 | Date getTime() 此方法返回一个 Date 对象,表示此 Calendar 的时间值(与 Epoch" 的毫秒偏移量)。 |
| 29 | long getTimeInMillis() 此方法以毫秒为单位返回此 Calendar 的时间值。 |
| 30 | TimeZone getTimeZone() 此方法获取时区。 |
| 31 | int hashCode() 此方法返回此日历的哈希码。 |
| 32 | protected int internalGet(int field) 此方法返回给定日历字段的值。 |
| 33 | boolean isLenient() 此方法告知日期/时间解释是否宽松。 |
| 34 | boolean isSet(int field) 此方法确定给定日历字段是否已设置值,包括由 get 方法调用触发的内部字段计算设置值的情况。 |
| 35 | abstract void roll(int field, boolean up) 此方法在给定时间字段上添加或减去(上/下)一个时间单位,而不会更改较大的字段。 |
| 36 | void roll(int field, int amount) 此方法将指定的(有符号的)金额添加到指定的日历字段,而不更改较大的字段。 |
| 37 | void set(int field, int value) 此方法将给定的日历字段设置为给定的值。 |
| 38 | void set(int year, int month, int date) 此方法设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。 |
| 39 | void set(int year, int month, int date, int hourOfDay, intminute) 此方法设置日历字段字段 YEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY 和 MINUTE。 |
| 40 | void set(int year, int month, int date, int hourOfDay, intminute, int second) 此方法设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值。 |
| 41 | void setFirstDayOfWeek(int value) 此方法设置一周的第一天;例如美国的星期日,法国的星期一。 |
| 42 | void setLenient(boolean lenient) 此方法指定日期/时间解释是否宽松。 |
| 43 | void setMinimalDaysInFirstWeek(int value) 此方法设置一年中第一周所需的最少天数;例如,如果将第一周定义为包含一年中第一个月的第一天的一周,则使用值调用此方法。 |
| 44 | void setTime(Date date) 此方法使用给定的 Date 设置此 Calendar 的时间。 |
| 45 | void setTimeInMillis(long millis) 此方法使用给定的 long 值设置此 Calendar 的当前时间。 |
| 46 | void setTimeZone(TimeZone value) 此方法使用给定的时区值设置时区。 |
| 47 | String toString() 此方法返回此日历的字符串表示形式。 |
现在让我们看一个 equals() 方法的示例。
java.util.Calendar.equals() 方法将此日历与指定的对象进行比较 −
示例
import java.util.*;
public class Demo {
public static void main(String[] args) {
// 创建两个日历
Calendar cal = Calendar.getInstance();
// 为其中一个日历指定日期
Calendar cal2 = new GregorianCalendar(2011, 04, 29);
// 比较两个日历。
boolean b = cal.equals(cal2);
// 打印结果
System.out.println("Calendars are equal :" + b);
}
}
输出
日历相等:false
让我们看另一个示例,其中我们获取了一周的第一天。java.util.Calendar.getFirstDayOfWeek() 方法返回一周的第一天。
示例
import java.util.*;
public class Demo {
public static void main(String[] args) {
// 创建新日历
Calendar cal = Calendar.getInstance();
// 打印一周的第一天
System.out.println("First day is :" + cal.getFirstDayOfWeek());
int day = cal.getFirstDayOfWeek();
switch (day) {
case (1):
System.out.println("Sunday");
break;
case (2):
System.out.println("Monday");
break;
case 3:
System.out.println("Tuesday");
break;
case 4:
System.out.println("Wednesday");
break;
case 5:
System.out.println("Thrusday");
break;
case 6:
System.out.println("Friday");
break;
case 7:
System.out.println("Saturday");
break;
}
}
}
输出
First day is :1 Sunday

