
Java Date与Calendar类详解

"这篇文档主要介绍了JAVA编程中关于Date类和Calendar类的使用。Date类在JDK1.0中是表示时间的主要类,但在JDK1.1之后,由于其不支持国际化,推荐使用Calendar类。Date类可以通过默认构造函数获取当前时间,并通过toString方法以特定格式打印。此外,Date类还允许设置指定日期。同时,通过Date对象的get方法可以获取年、月、日、小时等信息。Calendar类则提供了更灵活的日期和时间操作,支持国际化和时间区域设置。"
在Java中,Date类主要用于表示特定的瞬间,精确到毫秒。当创建一个Date对象时,如果不传递任何参数,它将代表当前系统时间。例如:
```java
Date date = new Date();
System.out.println(date);
```
输出的日期时间格式通常为"EEE MMM dd HH:mm:ss zzz yyyy",其中"EEE"代表星期几,"MMM"代表月份,"dd"代表日期,"HH:mm:ss"代表小时、分钟和秒,"zzz"代表时区,"yyyy"代表四位数的年份。
为了创建特定日期的Date对象,可以使用带参数的构造函数,但需要注意年份是从1900年开始计算的,月份是从0开始的:
```java
Date date1 = new Date(2009 - 1900, 3 - 1, 9); // 表示2009年3月9日
System.out.println(date1);
```
Date类提供了一系列get方法来获取日期和时间信息,如年份、月份、日期、小时、分钟和秒:
```java
int year = date2.getYear() + 1900;
int month = date2.getMonth() + 1;
int day = date2.getDate();
int hour = date2.getHours();
int minute = date2.getMinutes();
int second = date2.getSeconds();
int dayOfWeek = date2.getDay();
```
这里的getYear()返回的是从1900年开始的年份,getMonth()返回的月份是从0开始的,因此需要加1。
然而,自JDK1.1起,为了更好地支持国际化和更复杂的日期/时间操作,推荐使用Calendar类。Calendar是抽象类,不能直接实例化,但可以通过getInstance()方法获取一个具体实现,如GregorianCalendar:
```java
Calendar calendar = Calendar.getInstance();
calendar.set(2009, Calendar.MARCH, 9);
Date date2 = calendar.getTime();
```
Calendar类提供了更多的日期和时间操作,如添加或减少日期、获取或设置特定字段(如年、月、日等)以及转换为Date对象的能力。
虽然Date类在早期版本的Java中被广泛使用,但随着Java的发展,Calendar类因其灵活性和对国际化支持的优势而成为处理日期和时间的首选。在现代Java开发中,还可以考虑使用Java 8引入的java.time包中的类,如LocalDate、LocalTime、LocalDateTime等,它们提供了更加简洁和强大的日期时间API。
相关推荐









weixin_38623009
- 粉丝: 5
最新资源
- SQL2000安装故障解决方案工具下载
- jQuery实现的炫酷弹出模式窗口教程
- 飞鸽传书V2.06版C++源码详解
- 用友T6-HR信息化培训:人力资源管理与战略执行
- 如何在tcpdf中配置使用Droid Sans Fallback中文字体
- 安卓系统小米2挂载大U盘及root教程
- Live555源码及编译lib库下载指南
- SNMP SMI-S协议下的MIB信息查看工具
- 摩托罗拉刷机必备:RSD 6.0汉化版教程与文件解析
- 单片机利用CDMA实现网络数据传输技术
- 手机按键封装设计教程与示例
- 深入了解Tubor C++技术及其在文件压缩中的应用
- IAR环境下uCOS-II与STM32的移植代码示例
- EDSDK 2.9:佳能单反相机SDK开发包介绍
- 图解教程:轻松解决SVN冲突
- 深入理解基本算法:计算机程序设计艺术第1卷
- USBManager工具发布 1.0.0 版本——提升USB管理体验
- SolidWorks电子元件3D建模指南
- 自动校时软件:便捷的时间同步解决方案
- PandaDirectXMaxExporter插件:3ds Max 2009专用.x插件
- jrtplib源码及英文手册发布,附带demo示例与编译版库
- 多功能教室预约系统asp.net版功能演示
- linxerUnpacker:新一代虚拟机技术脱壳解决方案
- ArcGIS Server开发实战:专题制图与GeoTheme源码解析