API帮助文档(三)

151 阅读3分钟

 一JDK7以前的时间相关类

<1>Date类:

Date是一个Java写好的javabean类,用来描述时间,精确到毫秒

1.构造方法

利用空参构造创建的对象,默认表示当前系统的时间。

利用有参构造创建的对象,表示指定时间。

​编辑

这里d1里面是0l因为类型是long date;

​编辑

其次我们要注意,创建对象时要选择java.util包下的,java.sql是跟数据库有关的

​编辑

2.get/set方法

​编辑

​编辑

 3.练习

   打印时间原点之后一年的时间

​编辑

可以看到get/set方法的作用:把对像转换成毫秒值进行加减乘除。

<2>SimpleDateFormat类:

可以格式化:把时间变成我们喜欢的格式

解析:把字符串的时间变成Date对象

​编辑

1.构造方法和成员方法

​编辑

格式化(日期对象->字符串)

​编辑

解析(字符串->日期对象)

​编辑

但是我们书写完毕之后parse会报错ALT+ENTER选择第一个即可

​编辑

<3>Calendar

Calendar代表了系统当前时间的日历对象,可以单独修改,获取时间中的年月日

注意Calendar是一个抽象类不能直接创建对象。

1获取对象:

所以我们通过getInstance()获取当前的日历对象

​编辑

注意:1.此时c里面的数据就是根据不同时区把当前的纪元,年,月,日等等存放到一个数组里面

2.如果你获取月份  他的范围是0-11,假如输出0那么代表一月份,以此类推

3.如果你获取星期 在外国人眼里,每个星期的第一天是星期天,所以如果输出1则代表星期天。

2.get/set/add:

​编辑

当我们获取某个字段的时候,因为他是存在数组里面的,所以我们需要索引来获取他

​编辑

我们可以发现这是1970年 一月一日 星期四

修改

 ​编辑

增加/减少

​编辑

二JDK8之后的时间相关类

JDK8之后的时间相关类的优势:

代码层面:更加简洁。

安全方面:JDK7之前在多线程可能出现数据安全问题。

​编辑

 <1>Date类:

1.ZoneId时区:

​编辑

​编辑

 2.Instant:时间戳

​编辑

​编辑

​编辑

我们可以发现isAfter和isBefore的用法,就是判断两个时间戳的先后

​编辑

注意:时间戳和字符串类似,不是在原有的时间戳上加减,而是创建一个新的

这两个类之后新增的时间相关类大体相同