第1节 常用类库(下)
六、java.util.Date
Date
类表示特定的时刻,精度为毫秒。
在JDK 1.1之前, Date
类还有两个附加功能。 它允许将日期解释为年,月,日,小时,分钟和秒值。 它还允许格式化和解析日期字符串。 不幸的是,这些功能的API不适合国际化。 从JDK 1.1开始, Calendar
类应该用于在日期和时间字段之间进行转换 ,而DateFormat
类应该用于格式化和解析日期字符串 。 不推荐使用Date
中的相应方法。
所以Date
类主要就是表示特定时刻的对象,不具备太多功能。
6.1 构造方法
其他的构造方法都已经过时,不用了。
package com.kaikeba.coreclasslibrary.date;import java.util.Date;/*** 日期和时间:Date*/
public class Demo {public static void main(String[] args) {//创建一个当前时间的DateDate 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) {//创建一个当前时间的DateDate 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
方法,如下所示:
Calendar c1 = 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
等等。