Calendar类概述
-
java.util.Calendar类:是一个日历类
-
Calendar类是一个抽象类,里边提供了很多操作日历字段的方法。
如:YEAR、 MONTH、 DAY OF MONTH、HOUR
-
Calendar类无法直接创建对象使用,里边有一个静态方法叫 getInstance(),getInstance()方法返回了 Calendar类的子类对象。static Calendar getInstance()使用默认时区和语言环境获得一个日历。
Calender获取对象的方式
使用静态方法:Calendar.getInstance()
复制 | import java.util.Calendar; |
| |
| public class Demo01Calendar { |
| public static void main(String[] args) { |
| Calendar calendar = Calendar.getInstance(); |
| System.out.println(calendar); |
| } |
| } |
Calender类的常用成员方法
复制 | public int get(int field) |
| |
| |
| public void set(int field, int value) |
| |
| |
| public abstract void add(int field, int amount) |
| |
| |
| public Date getTime() |
| |
复制 | 成员方法的参数: |
| int field:日历类的字段,可以使用 Calendar类的静态成员变量获取 |
| public static final int YEAR = 1 年 |
| public static final int MONTH = 2 月 |
| public static final int DATE=5 一个月中的某一天 |
| public static final int DAY_OF_ MONTH=5 一个月中的某一天 |
| public static final int HOUR =10 时 |
| public static final int MINUTE =12 分 |
| public static final int SECOND =13 秒 |
Calendar 类的简单使用
get() 方法
返回给定日历字段的值
复制 | import java.util.Calendar; |
| |
| public class DemoCalendarGet { |
| public static void main(String[] args) { |
| |
| Calendar calendar = Calendar.getInstance(); |
| |
| |
| System.out.println( |
| "年:" + calendar.get(Calendar.YEAR) + "\n" + |
| "月:" + calendar.get(Calendar.MONTH) + "\n" + |
| "一个月中的某一天:" + calendar.get(Calendar.DATE) + "\n" + |
| "一个月中的某一天:" + calendar.get(Calendar.DAY_OF_MONTH) + "\n" + |
| "时:" + calendar.get(Calendar.HOUR) + "\n" + |
| "分:" + calendar.get(Calendar.MINUTE) + "\n" + |
| "秒:" + calendar.get(Calendar.SECOND) |
| ); |
| } |
| } |
复制 | 输出: |
| 年:2020 |
| 月:0 |
| 一个月中的某一天:11 |
| 一个月中的某一天年:11 |
| 时:8 |
| 分:37 |
| 秒:31 |
复制 | 说明: |
| 当时日期、时间:2020年1月11日8时37分31秒 |
| 西方的月份:0-11 |
| 东方的月份:1-12 |
set() 方法:
将给定的日历字段设置为给定值
复制 | import java.util.Calendar; |
| |
| public class DemoCalendarSet { |
| public static void main(String[] args) { |
| |
| Calendar calendar = Calendar.getInstance(); |
| System.out.println("\n设置前"); |
| System.out.println( |
| "年:" + calendar.get(Calendar.YEAR) + "\n" + |
| "月:" + calendar.get(Calendar.MONTH) + "\n" + |
| "一个月中的某一天:" + calendar.get(Calendar.DAY_OF_MONTH) |
| ); |
| |
| |
| calendar.set(Calendar.YEAR, 2008); |
| |
| calendar.set(Calendar.MONTH, 10); |
| |
| calendar.set(Calendar.DAY_OF_MONTH, 3); |
| System.out.println("\n分别设置后"); |
| System.out.println( |
| "年:" + calendar.get(Calendar.YEAR) + "\n" + |
| "月:" + calendar.get(Calendar.MONTH) + "\n" + |
| "一个月中的某一天:" + calendar.get(Calendar.DAY_OF_MONTH) |
| ); |
| |
| |
| calendar.set(1998, Calendar.SEPTEMBER, 25); |
| System.out.println("\n同时设置后"); |
| System.out.println( |
| "年:" + calendar.get(Calendar.YEAR) + "\n" + |
| "月:" + calendar.get(Calendar.MONTH) + "\n" + |
| "一个月中的某一天:" + calendar.get(Calendar.DAY_OF_MONTH) |
| ); |
| } |
| } |
复制 | 输出结果: |
| |
| 设置前 |
| 年:2020 |
| 月:0 |
| 一个月中的某一天:11 |
| |
| 分别设置后 |
| 年:2008 |
| 月:10 |
| 一个月中的某一天:3 |
| |
| 同时设置后 |
| 年:1998 |
| 月:8 |
| 一个月中的某一天:25 |
add() 方法
根据日历的规则,为给定的日历字段添加或减去指定的时间量。
复制 | import java.util.Calendar; |
| |
| public class DemoCalendarAdd { |
| public static void main(String[] args) { |
| |
| Calendar calendar = Calendar.getInstance(); |
| System.out.println("\n变化前"); |
| System.out.println( |
| "年:" + calendar.get(Calendar.YEAR) + "\n" + |
| "月:" + calendar.get(Calendar.MONTH) + "\n" + |
| "一个月中的某一天:" + calendar.get(Calendar.DAY_OF_MONTH) |
| ); |
| |
| |
| calendar.add(Calendar.YEAR, -2); |
| |
| calendar.add(Calendar.MONTH, 3); |
| |
| calendar.add(Calendar.DAY_OF_MONTH, 10); |
| System.out.println("\n变化后"); |
| System.out.println( |
| "年:" + calendar.get(Calendar.YEAR) + "\n" + |
| "月:" + calendar.get(Calendar.MONTH) + "\n" + |
| "一个月中的某一天:" + calendar.get(Calendar.DAY_OF_MONTH) |
| ); |
| } |
| } |
复制 | 输出结果: |
| |
| 变化前 |
| 年:2020 |
| 月:0 |
| 一个月中的某一天:11 |
| |
| 变化后 |
| 年:2018 |
| 月:3 |
| 一个月中的某一天:21 |
getTime() 方法
返回一个表示此 Calendar时间值(从历元到现在的亳秒偏移量)的Date对象。
复制 | import java.util.Calendar; |
| |
| public class DemoCalendarGetTime { |
| public static void main(String[] args) { |
| |
| Calendar calendar = Calendar.getInstance(); |
| |
| |
| System.out.println( |
| calendar.getTime() |
| ); |
| } |
| } |
复制 | 输出结果: |
| Sat Jan 11 21:16:52 CST 2020 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)