Java 8 出來好久了,但是好多人還不太會(huì)用它的新特性,那我們今天來講一講Java 8的Time
為什么要使用Java 8 Time呢?
Java之前的Date類太老了,日歷類又不方便,很多人在項(xiàng)目中總喜歡在util包下建一個(gè)DateUtil,里面放一些辟如比較2個(gè)時(shí)間的前后啊,獲取下一個(gè)月的第一天時(shí)間等等的方法,有些公司的中間件團(tuán)隊(duì)也會(huì)整理一下大而全的DateUtil供整個(gè)公司使用,但是有了Java 8 的Time后,我們就可以對DateUtil說拜拜了
話說JodaTime是Java 8 Time的前身
Java 8的時(shí)間類主要在java.time包下面,主要會(huì)使用到的類有
LocalDateTimeLocalDateLocalTimeZonedDateTime
LocalDate代表的是本地日期,例如2019-11-11
LocalTime代表的是本地的時(shí)間,例如11:11:11
LocalDateTime = LocalDate + LocalTime,例如2019-11-11T11:11:11(默認(rèn)的時(shí)間格式就是ISO-8601) 其實(shí)源碼里LocalDateTime類里就是保持了這2個(gè)對象
這四個(gè)類里,Local打頭的都是不帶時(shí)區(qū)的,只有
ZonedDateTime帶時(shí)區(qū)的
ZonedDateTime zonedDateTime = LocalDateTime.now().atZone(ZoneId.systemDefault());
zonedDateTime.toLocalDate();
zonedDateTime.toLocalDateTime();
zonedDateTime.toLocalTime();
我們可以通過LocalDateTime + 一個(gè)時(shí)區(qū)轉(zhuǎn)換到ZonedDateTime,如上面第一行所示
也可以通過ZonedDateTime直接轉(zhuǎn)換到LocalDateTime
未完待續(xù)?。。?/p>