第1节 常用类库(下)
六、java.util.Date
Date
类表示特定的时刻,精度为毫秒。
在JDK 1.1之前,
Date
类还有两个附加功能。 它允许将日期解释为年,月,日,小时,分钟和秒值。 它还允许格式化和解析日期字符串。 不幸的是,这些功能的API不适合国际化。 从JDK 1.1开始,
Calendar
类应该用于在日期和时间字段之间进行转换 ,而
DateFormat
类应该用于格式化和解析日期字符串 。 不推荐使用
Date
中的相应方法。
所以
Date
类主要就是表示特定时刻的对象,不具备太多功能。
6.1 构造方法
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2YfNWawNyZuBnLycTMjFGN1U2MldDZ0MmZ5ATYmRzMmFDNzUTNiJmNjV2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
其他的构造方法都已经过时,不用了。
package com.kaikeba.coreclasslibrary.date;
import java.util.Date;
/**
* 日期和时间:Date
*/
public class Demo {
public static void main(String[] args) {
//创建一个当前时间的Date
Date date = new Date();
System.out.println(date);
}
}
结果:
Tue Sep 07 21:44:24 CST 2021
println
方法调用了
toString
方法,
Date
的
toString
方法也已经被重写了,格式就如上所示。
6.2 方法摘要
最常用的三个方法:
用于获取和设置时间。
可以通过运算来获得一个新的时间。
package com.kaikeba.coreclasslibrary.date;
import java.util.Date;
/**
* 日期和时间:Date
*/
public class Demo {
public static void main(String[] args) {
//创建一个当前时间的Date
Date date = new Date();
long time = date.getTime() - (24*60*60*1000);
Date date2 = new Date(time);
System.out.println(date);
System.out.println(date2);
}
}
结果:
Tue Sep 07 21:54:40 CST 2021
Mon Sep 06 21:54:40 CST 2021
七、java.text.DateFormat
DateFormat
是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化和分析日期或时间。
日期/时间格式化子类(例如
SimpleDateFormat
)允许格式化(即,日期→文本),解析(文本“日期”)和规范化。 日期表示为
Date
对象或自1970年1月1日00:00:00 GMT以来的毫秒数。
直接子类:
SimpleDateFormat
SimpleDateFormat
是一个用于以区域设置敏感的方式格式化和解析日期的具体类。 它允许格式化(日期→文本),解析(文本→日期)和规范化。
SimpleDateFormat
允许您从为日期时间格式选择任何用户定义的模式开始。
7.1 日期和时间模式
例子:
7.2 构造方法
比较常用的是指定字符串模式的,例子如下:
package com.kaikeba.coreclasslibrary.dateformat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo {
public static void main(String[] args) throws ParseException {
//DateFormat
/**
* y : 年
* M : 月
* d : 日
* H : 时
* m : 分
* s : 秒
*
* 2020年12月12日 12:12:50
*/
SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
}
}
7.3 方法摘要
常用的有两个:
1、
format
方法:将
Date
对象格式化为构建时指定的格式。
String text = format.format(new Date());
System.out.println(text);
结果:
2021年09月07日 22:09:15
2、
parse
方法:将满足指定时的格式转换为
Date
对象。
Date date = format.parse("2021年12月12日 12:12:13");
System.out.println(new Date().getTime() - date.getTime());
结果:
-8258577410
八、java.util.Calendar
所述
Calendar
类是一个抽象类,可以为在某一特定时刻和一组之间的转换的方法
calendar fields
如
YEAR
,
MONTH
,
DAY_OF_MONTH
,
HOUR
,等等,以及用于操纵该日历字段,如获取的日期下个星期。 瞬间可以用毫秒值表示,该值是1970年1月1日格林威治标准时间1970年1月1日00:00:00,000(格里高利)的_Epoch_的偏移量。
8.1 新建对象
Calendar
类对象的新建比较特殊,使用
getInstance
方法,如下所示:
8.2 常用方法
所有的方法很多,这里介绍几个常用的:
1、
get
方法:
Calendar
类中有很多关于年月日、星期等等的字段,可以直接获取:
int year = c1.get(Calendar.YEAR);
int day = c1.get(Calendar.DAY_OF_YEAR);
System.out.println(year);
System.out.println(day);
结果如下:
2021
250
2、
set
方法:
c1.set(Calendar.YEAR, 3000);
System.out.println(c1.get(Calendar.YEAR));
结果:
3000
3、
add
方法:
c1.add(Calendar.YEAR, 1);
System.out.println(c1.get(Calendar.YEAR));
结果如下:
2022
4、
getTime
方法:
Date d = c1.getTime();
System.out.println(d);
结果如下:
Wed Sep 07 22:29:11 CST 2022
5、
getActualMaxmum
方法:
获取某字段的最大最小值,例子如下:
int m = c1.getActualMaximum(Calendar.MONTH);
System.out.println(m);
结果如下:
11 // 注意月份是0-11
九、java.lang.System
System
类包含几个有用的类字段和方法。 它无法实例化。
System
类提供的设施包括标准输入,标准输出和错误输出流 ; 访问外部定义的属性和环境变量; 加载文件和库的方法; 以及用于快速复制阵列的一部分的实用方法。
目前看着可能会用到的:
arraycopy
、
gc
、
exit
等等。