文章目录
日期
Java在java.util包中提供了Date类,其封装了当前日期和时间。
Date类包含了下面两种构造器:
| 序号 | 构造器 & 描述 |
|---|---|
| 1 | Date() 这个构造器将对象初始化为当前日期和时间。 |
| 2 | Date(long millisec) 这个构造器有一个传入参数,这个参数是从1970年2月1日之后的毫秒数。 |
下表中列出了Date类中定义的方法:
| 序号 | 方法及其描述 |
|---|---|
| 1 | boolean after(Date date) 当前日期在指定日期后面时返回true,否则返回false。 |
| 2 | boolean before(Date date) 当前日期在指定日期前面时返回true,否则返回false。 |
| 3 | Object clone( ) 复制日期对象。 |
| 4 | int compareTo(Date date) 将两个日期进行比较。若当前日期与指定日期相同,则返回0;若当前日期在指定日期后面,则返回负数;若当前日期在指定日期前面,则返回正数。 |
| 5 | int compareTo(Object obj) 当obj是Date类型对象时,功能和conpareTo(Date date)方法相同;否则返回ClassCastException异常。 |
| 6 | boolean equals(Object date) 当前日期和指定日期的日期和时间都相同时返回true,否则返回false。 |
| 7 | long getTime( ) 返回从1970年1月1日到当前日期经过的毫秒数。 |
| 8 | int hashCode( ) 返回日期对象的哈希值。 |
| 9 | void setTime(long time) 设置日期时间,传入值为日期距离1970年1月1日经过的毫秒数。 |
| 10 | String toString( ) 将日期对象转换为字符串返回。 |
获取当前日期和时间
下面代码中写的是Java中获取日期和时间的一种非常简单的方法。使用的是一个简单的Date对象然后用toString()方法来打印当前日期和时间。
import java.util.Date;
public class DateDemo {
public static void main(String args[]) {
//初始化Date对象
Date date = new Date();
//以字符串形式输出日期
System.out.println(date.toString());
}
}
程序输出如下:
on May 04 09:51:52 CDT 2009
日期的比较
下面是比较两个日期对象的方法:
- 可以使用getTime()方法获取两个日期分别距离1970年2月1日的毫秒数,然后再比较毫秒数的大小
- 使用before(),after()和equals()方法来比较。例如,每月的12日在18日之前,因此,new Date(99,2,12).before(new Date(99,2,18))返回true。
- 使用compareTo()方法。这个方法由Comparable接口定义,且被Date类实现。
使用SimpleDateFormat来格式化Date
SimpleDateFormat类是一个可以格式化和解析日期的具体类(不是抽象类),其对系统的语言环境时敏感的。SimpleDateFormat允许我们使用自定义的日期模式来进行格式化。
程序实例
import java.util.*;
import java.text.*;
public class DateDemo {
public static void main(String args[]) {
Date dNow = new Date( );
SimpleDateFormat ft =
new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
System.out.println("Current Date: " + ft.format(dNow));
}
}
程序输出为:
Current Date: Sun 2004.07.18 at 04:14:09 PM PDT
简单的DateFormat格式化编码
要想指定日期时间的格式,需要用到日期模式字符串。在这个模式里面,所有用到的ASCII编码字符都被保留为模式字符,也就是下面这些:
| 字符 | 说明 | 举例 |
|---|---|---|
| G | 描述时代 | AD |
| y | 年 | 2001 |
| M | 月 | July 或 07 |
| d | 日 | 10 |
| h | 时(1-12) | 12 |
| H | 时(0-23) | 22 |
| m | 分 | 30 |
| s | 秒 | 55 |
| S | 毫秒 | 234 |
| E | 星期 | Tuesday |
| D | 一年中的第几天 | 360 |
| F | 一个月中的第n个星期几 | 2(7月的第2个星期三) |
| w | 一年中的第几个星期 | 40 |
| W< |

本文介绍了Java中的日期和时间处理,包括使用Date类获取当前日期和时间,进行日期比较,利用SimpleDateFormat进行格式化,使用printf方法和Calendar的GregorianCalendar子类。还展示了如何将字符串转换为日期以及暂停程序执行的方法。
最低0.47元/天 解锁文章
732

被折叠的 条评论
为什么被折叠?



