第六课:常用工具
(一)日期 和 时间
1. Date 类
java.util.Date 是一个用于表示日期和时间的类。它提供了两个构造函数:
- Date(): 使用当前时间和日期初始化一个实例。
- Date(long millisec): 接收从 1970 年 1 月 1 日 00:00:00 GMT 起的毫秒数,设置时间和日期。
常用方法如下:
| 序号 | 方法 | 描述 |
|---|---|---|
| 1 | after(Date date) | 如果调用对象的时间在指定日期之后,返回 true,否则返回 false。 |
| 2 | before(Date date) | 如果调用对象的时间在指定日期之前,返回 true,否则返回 false。 |
| 3 | compareTo(Date date) | 比较当前对象与指定日期,返回值:0 表示相等,负值表示当前日期在前,正值表示当前日期在后。 |
| 4 | equals(Object date) | 当调用对象的时间与参数指定的时间相等时返回 true,否则返回 false。 |
| 5 | getTime() | 返回距离 1970 年 1 月 1 日 00:00:00 GMT 的毫秒值。 |
| 6 | setTime(long time) | 设置日期对象为指定时间,时间以毫秒为单位。 |
| 7 | toString() | 返回格式化的字符串表示日期,例如:Mon May 04 09:51:52 CDT 2013。 |
示例:打印当前时间:
import java.util.Date;
public class DateDemo {
public static void main(String[] args) {
Date date = new Date();
System.out.println(date.toString());
}
}
输出示例:
Mon May 04 09:51:52 CDT 2013
2. 比较日期
- 方法一:
getTime()比较两个日期的毫秒值:
Date date1 = new Date();
Date date2 = new Date(1245876867000L);
//表示从 1970 年 1 月 1 日 00:00:00 GMT 开始起,经过了 1245876867000 毫秒 ,即 UTC 时间:2009/6/24 02:14:27 GMT
if (date1.getTime() > date2.getTime()) {
System.out.println("date1 在 date2 之后");
}
- 方法二:
before()和after()
Date date1 = new Date();
Date date2 = new Date(1245876867000L);
if (date1.after(date2)) {
System.out.println("date1 在 date2 之后");
} else if (date1.before(date2)) {
System.out.println("date1 在 date2 之前");
}
- 方法三:
compareTo()
Date date1 = new Date();
Date date2 = new Date(1245876867000L);
int result = date1.compareTo(date2);
if (result > 0) {
System.out.println("date1 在 date2 之后");
} else if (result < 0) {
System.out.println("date1 在 date2 之前");
} else {
System.out.println("date1 和 date2 相等");
}
3. 自定义日期格式
SimpleDateFormat 是一个专门用于日期格式化和解析的类,可根据自定义的格式生成字符串。
常用格式化模式
| 字母 | 说明 | 示例 |
|---|---|---|
| yyyy | 年 | 2023 |
| MM | 月(两位,大写) | 03 |
| dd | 日(两位) | 08 |
| HH | 24 小时制的小时 | 14 |
| mm | 分钟 | 30 |
| ss | 秒 | 59 |
| E | 星期简写 | Wed |
注意:
MM表示月份,而mm表示分钟。- 使用
hh表示 12 小时制,而HH表示 24 小时制。
示例
import java.text.SimpleDateFormat;
import java.util.Date;
public class FormatDate {
public static void main(String[] args) {
Date date = new Date();
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("当前时间为: " + ft.format(date));
}
}
输出示例:
当前时间为: 2023-02-24 13:37:45
4. 解析字符串为日期
使用 SimpleDateFormat 的 parse() 方法可以将字符串解析为 Date 对象:
import java.text.SimpleDateFormat;
import java.util.Date;
public class ParseDate {
public static void main(String[] args) throws Exception {
String dateStr = "2023-03-15";
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
Date date = ft.parse(dateStr);
System.out.println(date);
}
}