JAVA8 新特性 - 日期和时间API

一、JDK8(Java8)之前的日期和时间API

1、java.lang.System类中获取时间戳的方法:

currentTimeMillis()方法:返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差,称为时间戳。此方法用于计算时间差。

2、Java中两个Date类的使用:

(1)两个Date类的关系:

java.util.Date 类
      |---java.sql.Date 类

(2)java.util.Date 类:

① 构造器:

Date date1 = new Date(); //创建一个对应当前时间的Date对象

Date date2 = new Date(155030620410L); //创建指定毫秒数的Date对象

② 方法:

toString():返回当前的具体时间(具体到时、分、秒和时区)

getTime():获取当前Date对象对应的毫秒数(时间戳)

(3)java.sql.Date 类:对应着数据库中日期类型的变量

① 如何实例化:

java.sql.Date date3 = new java.sql.Date(35235325345L);
System.out.println(date3);  //1971-02-13

② 如何将 java.util.Date 对象转换成 java.sql.Date 对象:

情况一:

Date date4 = new java.sql.Date(2343243242323L);
java.sql.Date date5 = (java.sql.Date) date4;

情况二:

Date date6 = new Date();
java.sql.Date date7 = new java.sql.Date(date6.getTime());

3、simpleDateFormat的使用:

(1)格式化(日期 → 字符串):

SimpleDateFormat sdf = new SimpleDateFormat(); //实例化simpleDateFormat对象
Date date = new Date(); //实例化日期对象
String format = sdf.format(date); //日期转换字符串

特别说明:常见开发中,基本不使用默认的simpleDateFormat构造器,而是使用指定方式进行格式化(即:使用带参数的构造器),如下:

SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String format1 = sdf1.format(date);

(2)解析(格式化的逆过程:字符串 → 日期):

String str = "19-12-18 上午11:43";
Date date1 = sdf.parse(str);

4、Calendar(日历)类的使用:

(1)实例化:

方式一:创建其子类GregorianCalendar的对象

方式二(推荐):调用其静态方法getInstance()

(2)常用方法:

get()、set()、add()、getTime()、setTime()

二、JDK8(Java8)中新日期和时间API

1、LocalDate、LocalTime、LocalDateTime的使用(不可变特性):

(1)now():获取当前的日期(LocalDate类)、时间(LocalTime类)、日期+时间(LocalDateTime类)

LocalDate  localdate = LocalDate.now();
LocalTime  localtime = LocalTime.now();
LocalDateTime  localdatetime = LocalDateTime.now();

(2)of():设置指定的年、月、日、时、分、秒,没有偏移量

LocalDateTime  localdatetime1 = LocalDateTime.of(2020,10,6,36,16,6);

(3)getXXX():获取相关属性

(4)withXXX():设置相关属性

(5)plusXXX():增加相关属性值

(6)minusXXX():减少相关属性值

说明:

① LocalDateTime 相较于LocalDate、LocalTime,使用频率要高;

② Localdate、LocalTime、LocalDateTime 类似于Calendar。

2、Instant类的使用

posted @ 2022-06-22 21:29  萧若風  阅读(160)  评论(0编辑  收藏  举报