一、Date类
1、Date类的概述
java.util.Date
类表示特定的瞬间,精确到毫秒。(Date类其实是一个表示日期和时间的类)
注意:1000毫秒 = 1秒
2、Date类中的一些概念
(1)、毫秒值的概念
毫秒值就是两个时间段相差的时间转换为相差多少毫秒
毫秒值的作用
毫秒值可以对时间和日期进行计算,比如计算2099-02-04到2039-04-12中间一共有多少天,因为日期是字符串我们没办法直接进行加键,所以我们可以把日期转换为毫秒进行计算,计算完毕后再把毫秒转换为日期
(2)、 时间原点
时间原点就是(0毫秒):1970 年 1 月 1 日 00:00:00
(3)、 查看系统当前时间的方法是
System.currentTimeMillis()
System类中的currentTimeMills方法,该方法得到的是系统当前时间的毫秒值,long类型的
其中需要注意的是:
中国属于东八区,会把时间增加8个小时,时间原点中的1970年1月1日00:00:00是英国格林威治时间,而到我们中国时间原点变为1970年1月1日08:00:00
2、Date类中常用的构造方法和成员方法
(1)、Date() 空参构造
作用:获取当前系统的日期和时间
注意:CST指的是中国的标准时间
(2)、Date(long date) 代参构造方法
作用:传递毫秒值,把毫秒值转换为Date日期
(3)、getTime()方法
作用:把系统当前日期转换为到时间原点的时间的毫秒值
二、DateFormat类
1、DateFormat类的概述
java.text.DateFormat
是日期和时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来回转换
作用:
- 格式化:按照指定的格式,从Date对象转换为String对象
- 解析:按照指定的格式,从String对象转换为Date对象
2、DateFormat类的成员方法
(1)、format(Date date)方法,得到一个String类型的结果
作用:
按照指定的模式,把Date日期,格式化为符合模式的字符串
使用方式:
// 1、创建一个SimpleDateFormat对象,通过构造方法传递指定的模式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒")
// 2、调用SimpleDateFormat对象中的方法format,按照构造方法中的指定模式,把Date日期格式化符合模式的字符串
Date date = new Date();
String d = sdf.format(date);
(2)、 parse(String source)方法,得到一个Date类型的结果
作用:
把符合模式的字符串解析为Date日期
使用方式:
private static void demo02() throws-ParseException {
// 1、创建一个SimpleDateFormat对象,通过构造方法传递指定的模式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒")
// 2、调用SimpleDateFormat对象中的parse方法,把符合构造方法中模式的字符串,解析为Date日期
Date date = sdf.parse("2088年03月04日 14时12分33秒")
}
这里我们需要注意:
① 在parse的源码中,方法声明了一个异常叫ParseException
② 如果字符串和构造方法的模式不一样,那么程序就会抛出此异常。我们在调用一个抛出了异常的方法,就必须处理这个异常,要么throws继续抛出这个异常,要么try catch自己处理
日期和时间模式
字母所代表的含义
因为DateFormat类是一个抽象类,不能直接创建对象使用,所以我们选择使用它的子类SimpleDateFormat
3、SimpleDateFormat类的构造方法
(1)、SimpleDateFormat(String pattern)构造方法
使用方式:用给定的模式和默认语言环境的日期格式符号构造
参数的含义:传递进指定的模式
作用:传递进默认格式然后转换为对应模式的日期和时间
注意:我们再写对应模式的时候,字母严格区分大小写,连接的符号可以改变
“yyyy-MM-dd HH:mm:ss"也可以写成"yyyy年MM月dd日 HH时mm分ss秒”