Java教程-Java Calendar 类

Java Calendar 类
Java Calendar类是一个抽象类,提供了在特定时间点和一组日历字段(如月、年、小时等)之间转换日期的方法。它继承自Object类并实现Comparable接口。
Java Calendar类声明
让我们看一下java.util.Calendar类的声明。
public abstract class Calendar extends Object
implements Serializable, Cloneable, Comparable<Calendar>
Calendar方法列表
No | 方法 | 描述 |
---|---|---|
1. | public void add(int field, int amount) | 将指定的(有符号)时间量添加到给定的日历字段。 |
2. | public boolean after (Object when) | 如果此Calendar表示的时间在when对象表示的时间之后,则返回true。 |
3. | public boolean before(Object when) | 如果此Calendar表示的时间在when对象表示的时间之前,则返回true。 |
4. | public final void clear(int field) | 设置给定日历字段的值和此Calendar的时间值未定义。 |
5. | public Object clone() | clone()方法提供当前对象的副本。 |
6. | public int compareTo(Calendar anotherCalendar) | Calendar类的compareTo()方法比较两个日历对象之间的时间值(毫秒偏移量)。 |
7. | protected void complete() | 填充日历字段中的任何未设置字段。 |
8. | protected abstract void computeFields() | 将当前毫秒时间值time转换为字段数组fields[]中的日历字段值。 |
9. | protected abstract void computeTime() | 将字段数组fields[]中的当前日历字段值转换为毫秒时间值time。 |
10. | public boolean equals(Object object) | equals()方法比较两个对象是否相等,如果相等则返回true。 |
11. | public int get(int field) | 在get()方法中,日历的字段作为参数传递,此方法返回作为参数传递的字段的值。 |
12. | public int getActualMaximum(int field) | 返回作为参数传递给getActualMaximum()方法的日历字段的最大可能值。 |
13. | public int getActualMinimum(int field) | 返回作为参数传递给getActualMinimum()方法的日历字段的最小可能值。 |
14. | public static Set getAvailableCalendarTypes() | 返回包含Java Runtime Environment支持的所有可用日历类型的字符串集合。 |
15. | public static Locale[] getAvailableLocales() | 返回Java运行时环境中可用的所有语言环境的数组。 |
16. | public String getCalendarType() | 返回Java Runtime Environment支持的所有可用日历类型的字符串。 |
17. | public String getDisplayName(int field, int style, Locale locale) | 返回以给定样式和区域设置中的日历字段值作为参数传递的日历字段的字符串表示形式。 |
18. | public Map getDisplayNames(int field, int style, Locale locale) | 返回以给定样式和区域设置中的日历字段值作为参数传递的日历字段的Map表示形式。 |
19. | public int getFirstDayOfWeek() | 返回一周的第一天,以整数形式表示。 |
20. | public abstract int getGreatestMinimum(int field) | 此方法返回作为参数传递的Calendar字段的最小最大值。 |
21. | public static Calendar getInstance() | 此方法与日历对象一起使用,根据Java运行时环境设置的当前时区获取日历实例。 |
22. | public abstract int getLeastMaximum(int field) | 返回指定为参数的字段的所有最大值中的最小值。 |
23. | public abstract int getMaximum(int field) | 此方法与日历对象一起使用,获取作为参数传递的指定日历字段的最大值。 |
24. | public int getMinimalDaysInFirstWeek() | 返回所需的第一周的最小天数,以整数形式表示。 |
25. | public abstract int getMinimum(int field) | 此方法与日历对象一起使用,获取作为参数传递的指定日历字段的最小值。 |
26. | public final Date getTime() | 此方法获取日历对象的时间值,并返回日期。 |
27. | public long getTimeInMillis() | 返回当前时间的毫秒表示。此方法的返回类型为long。 |
28. | public TimeZone getTimeZone() | 获取日历对象的时区,并返回一个TimeZone对象。 |
29. | public int getWeeksInWeekYear() | 返回一年中的总周数。周年以整数形式返回。 |
30. | public int getWeekYear() | 获取当前日历表示的周年。 |
31. | public int hashCode() | Java中的所有其他类都重载了hashCode()方法。此方法返回日历对象的哈希码。 |
32. | protected final int internalGet(int field) | 此方法返回作为参数传递的日历字段的值。 |
33. | public boolean isLenient() | 返回布尔值。如果此日历的解释模式是宽松的,则返回true;否则返回false。 |
34. | public final boolean isSet(int field) | 此方法检查作为参数传递的字段是否已设置。如果未设置,则返回false;否则返回true。 |
35. | public boolean isWeekDateSupported() | 检查此日历是否支持周日期。默认值为false。 |
36. | public abstract void roll(int field, boolean up) | 此方法在不影响其他字段的情况下,增加或减少指定的日历字段一个单位。 |
37. | public void set(int field, int value) | 使用指定值设置指定的日历字段。 |
38. | public void setFirstDayOfWeek(int value) | 设置一周的第一天。将要设置为一周的第一天的值作为参数传递。 |
39. | public void setMinimalDaysInFirstWeek(int value) | 设置第一周所需的最少天数。将要设置为第一周的最少天数的值作为参数传递。 |
40. | public final void setTime(Date date) | 设置当前日历对象的时间。将Date对象作为参数传递。 |
41. | public void setTimeInMillis(long millis) | 设置当前时间的毫秒表示。 |
42. | public void setTimeZone(TimeZone value) | 使用传递的TimeZone值(对象)设置时区。 |
43. | public void setWeekDate(int weekYear, int weekOfYear, int dayOfWeek) | 使用指定的整数值设置当前日期。这些值是weekYear、weekOfYear和dayOfWeek。 |
44. | public final Instant toInstant() | toInstant()方法将当前对象转换为Instant对象。 |
45. | public String toString() | 返回当前对象的字符串表示形式。 |
Java Calendar类示例
import java.util.Calendar;
public class CalendarExample1 {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
System.out.println("当前日期为:" + calendar.getTime());
calendar.add(Calendar.DATE, -15);
System.out.println("15天前:" + calendar.getTime());
calendar.add(Calendar.MONTH, 4);
System.out.println("4个月后:" + calendar.getTime());
calendar.add(Calendar.YEAR, 2);
System.out.println("2年后:" + calendar.getTime());
}
}
输出:
当前日期为:Thu Jan 19 18:47:02 IST 2017
15天前:Wed Jan 04 18:47:02 IST 2017
4个月后:Thu May 04 18:47:02 IST 2017
2年后:Sat May 04 18:47:02 IST 2019
Java Calendar类示例:get()
import java.util.Calendar;
public class CalendarExample2 {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
System.out.println("当前日历的年份:" + calendar.get(Calendar.YEAR));
System.out.println("当前日历的日期:" + calendar.get(Calendar.DATE));
}
}
输出:
当前日历的年份:2017
当前日历的日期:20
Java Calendar类示例:getInstance()
import java.util.Calendar;
public class CalendarExample3 {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
System.out.println("当前日期和时间为:" + calendar.getTime());
}
}
输出:
当前日期和时间为:Fri Jan 20 14:26:19 IST 2017
Java Calendar类示例:getMaximum()
import java.util.Calendar;
public class CalendarExample4 {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
int maximum = calendar.getMaximum(Calendar.DAY_OF_WEEK);
System.out.println("一周中的最大天数:" + maximum);
}
}
输出:
一周中的最大天数:7
这是一些Java Calendar类的常见方法示例。您可以根据需要使用这些方法来操作和处理日期和时间。