Java日期处理详解:Calendar与Date的转换及格式化
版权申诉
23 浏览量
更新于2024-07-08
收藏 76KB DOCX 举报
"这篇文档总结了Java中处理日期和时间的一些常用函数,主要涉及`Calendar`类、`Date`类以及`SimpleDateFormat`类的使用。文档内容包括初始化`Calendar`对象、`Calendar`与`Date`之间的转换、日期时间的格式化输出、计算一年中的第几星期、`add()`和`roll()`方法的用法等核心知识点。"
在Java中,处理日期和时间是常见的需求。`Calendar`是Java提供的一个抽象类,用于代表日历系统,而`Date`类则用于表示特定的瞬间,精确到毫秒。`SimpleDateFormat`是一个具体的类,用于日期和时间的格式化和解析。
1. 初始化`Calendar`对象:
初始化`Calendar`实例通常通过`Calendar.getInstance()`方法完成。在设置特定日期或时间属性前,建议先调用`clear()`方法清除所有字段的值,以避免继承系统当前时间的信息。
```java
Calendar time = Calendar.getInstance();
time.clear();
time.set(Calendar.YEAR, year);
```
2. `Calendar`与`Date`之间的转化:
- `Calendar`转`Date`:设置`Calendar`的时间后,可以通过`getTime()`方法获取`Date`对象。
```java
Date date = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(date);
```
- `Date`转`Calendar`:创建`Calendar`实例并设置其时间字段为`Date`对象的时间。
```java
Date date = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(date);
```
3. 格式化输出日期时间:
使用`SimpleDateFormat`进行日期时间的格式化输出,例如将日期格式化为"yyyy-MM-dd HH:mm:ss"。
```java
Date date = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(df.format(date));
```
4. 计算一年中的第几星期:
- 计算某一天是一年中的第几星期:通过设置`Calendar`的年、月、日,然后获取`WEEK_OF_YEAR`字段的值。
```java
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 2006);
cal.set(Calendar.MONTH, 9); // 注意月份是从0开始的,所以9代表10月
cal.set(Calendar.DAY_OF_MONTH, 3);
int weekNo = cal.get(Calendar.WEEK_OF_YEAR);
```
- 计算一年中的第几星期是几号:需要根据具体日期进行计算。
5. `add()`方法:
`add()`方法用于增加或减少某个日期字段的值。例如,增加一个月会将日期移动到下个月的同一天。
```java
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 2006);
cal.set(Calendar.MONTH, 8); // 8代表9月
cal.set(Calendar.DAY_OF_MONTH, 30);
cal.add(Calendar.MONTH, 1);
System.out.println(df.format(cal.getTime()));
```
6. `roll()`方法:
`roll()`方法与`add()`类似,但不会改变更高级别的字段。当向日期添加或减去值时,如果超过该字段的最大值或小于最小值,`add()`会更改相邻的较高字段,而`roll()`则保持不变。
```java
cal.set(Calendar.YEAR, 2006);
cal.set(Calendar.MONTH, 9);
cal.set(Calendar.DAY_OF_MONTH, 3);
cal.roll(Calendar.DATE, -4); // 向前滚动4天
System.out.println(df.format(cal.getTime()));
cal.roll(Calendar.DATE, 4); // 向后滚动4天
System.out.println(df.format(cal.getTime()));
```
以上是Java中处理日期和时间的基础操作,这些知识在开发中非常常见,对于处理日期相关的业务逻辑至关重要。通过熟练掌握这些函数的使用,可以方便地进行日期的增减、格式化输出以及各种日期计算。
2019-06-24 上传
2021-09-30 上传
2018-12-31 上传
2022-07-09 上传
2022-10-25 上传
2023-08-22 上传
2022-05-19 上传
2022-11-28 上传
2021-10-07 上传
苦茶子12138
- 粉丝: 1w+
- 资源: 6万+
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析