
Java日期处理详解:Calendar与Date的转换及格式化
版权申诉
76KB |
更新于2024-07-08
| 166 浏览量 | 举报
收藏
"这篇文档总结了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中处理日期和时间的基础操作,这些知识在开发中非常常见,对于处理日期相关的业务逻辑至关重要。通过熟练掌握这些函数的使用,可以方便地进行日期的增减、格式化输出以及各种日期计算。
相关推荐










苦茶子12138
- 粉丝: 1w+
最新资源
- 精选中文Css+Div网站设计模板大全
- C语言源码:日志文件记录系统
- Palm手机上的PocketC编程入门
- 基于VS2005和SQL Server2000的图书馆管理系统
- 批量操作无忧:9个实用的Batch小程序应用示例
- VC++实现录音机功能的源码解析
- VC开发的高智商中国象棋游戏源码解析
- Diagram.js:多功能JavaScript统计图表控件
- Dundas Chart 控件使用基础教程
- 探索MIX模拟机实现:Knuth巨著的艺术与技术
- 减压与亲密:如何在情绪低落时改善人际互动
- JSF与MyFaces类库开发教程
- 深入掌握嵌入式C编程核心技巧
- C#实现的计算机图形学绘图程序及其调色板工具
- C/C++实用算法大全:深入理解与应用
- 最新Java面试全集:掌握必备面试题
- JAVA聊天系统源码分享与解析
- PB11数据窗口自动生成结构的WebService工具
- MATLAB语音工具箱:LPC与倒谱技术实现语音分析识别
- 2009新年PPT模板:工作总结与汇报必备
- DELPHI开发的固定资产管理系统源码
- 深入浅出网络基础与交换网络教程
- VB6.0实现的考试系统选择题功能
- 电脑挂机锁:保护隐私的实用小工具