日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 8 新特性之日期-时间 API

發布時間:2023/12/10 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 8 新特性之日期-时间 API 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Date-Time API簡介

在Java8之前的版本中,我們處理時間類型常常使用的是java.util包下的Date類。但使用Date類卻有諸多的弊端,如: java.util.Date 是非線程安全的,所有的日期類都是可變的;日期/時間類的定義并不一致,在java.util和java.sql的包下都含有Date類,在開發過程中極易出錯; 日期類并不提供國際化,沒有時區支持。為了解決以上問題,Java8在java.time 包下提供了很多新的 API,常用的類包括LocalDate、LocalTime、LocalDateTime,用以處理日期,時間,日期/時間等

LocalDate類

LocalDate是一個不可變類,在不考慮時區的情況下可以對日期(不包括時間)進行各種操作,它的默認格式是yyyy-MM-dd
獲取當前日期以及年、月、日
代碼示例:

//獲取當前日期以及年、月、日 LocalDate localDate = LocalDate.now(); int year = localDate.getYear(); int month = localDate.getMonthValue(); int day = localDate.getDayOfMonth(); System.out.println("當前日期:" + localDate); System.out.println("年:" + year + " 月:" + month + " 日:" + day);

運行結果:

當前日期:2018-12-12 年:2018 月:12 日:12

獲取指定的日期
代碼示例:

//獲取指定的日期 LocalDate specifiedDay = LocalDate.of(2008, 8, 18); System.out.println("指定日期:" + specifiedDay);

運行結果:

指定日期:2008-08-18

使用DateTimeFormatter進行日期格式化
代碼示例:

//使用DateTimeFormatter類進行日期格式化 LocalDate localDate = LocalDate.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日"); System.out.println("格式化后的日期:" + formatter.format(localDate));//將字符串轉為LocalDate類型 LocalDate newDate =LocalDate.parse("2018年12月12日", formatter); System.out.println("字符串轉日期類型:" + newDate);

運行結果:

格式化后的日期:2018年12月12日 字符串轉日期類型:2018-12-12

比較兩個時間的先后順序以及是否相等
代碼示例:

LocalDate localDate = LocalDate.now(); LocalDate otherDate = LocalDate.of(2018, 11, 11);//equals方法用于比較兩個日期是否相等 if(localDate.equals(otherDate)) {System.out.println("localDate與otherDate相等!"); } else {//isAfter和isBefore方法用于比較兩個日期前后順序if(localDate.isAfter(otherDate)) {System.out.println("localDate晚于otherDate!");}if(localDate.isBefore(otherDate)) {System.out.println("localDate早于otherDate!");} }

運行結果:

localDate晚于otherDate!

對日期做加減運算
代碼示例:

LocalDate localDate = LocalDate.now(); System.out.println("2年后日期:" + localDate.plusYears(2)); System.out.println("6月后日期:" + localDate.plusMonths(6)); System.out.println("3周后日期:" + localDate.plusWeeks(3)); System.out.println("15天后日期:" + localDate.plusDays(15));System.out.println("2年前日期:" + localDate.minusYears(2)); System.out.println("6月前日期:" + localDate.minusMonths(6)); System.out.println("3周前日期:" + localDate.minusWeeks(3)); System.out.println("15天前日期:" + localDate.minusDays(15));

運行結果:

2年后日期:2020-12-12 6月后日期:2019-06-12 3周后日期:2019-01-02 15天后日期:2018-12-272年前日期:2016-12-12 6月前日期:2018-06-12 3周前日期:2018-11-21 15天前日期:2018-11-27

獲取日期間隔的天數
代碼示例:

//獲取某年份的第N天的日期 LocalDate specialDay = LocalDate.ofYearDay(2018, 100); System.out.println("2018年的第100天:" + specialDay); //獲取兩個日期的間隔天數 long intervalDay = localDate.toEpochDay() - specialDay.toEpochDay(); System.out.println("間隔天數: " + intervalDay);

運行結果:

2018年的第100天:2018-04-10 間隔天數:246

LocalTime類

LocalTime與LocalDate一樣,也是一個不可變的類,默認格式是hh:mm:ss.zzz,它提供了對時間的各種操作
獲取當前時間以及自定義時間
代碼示例:

//獲取當前時間、時、分、秒以及自定義時間 LocalTime localTime = LocalTime.now(); int hour = localTime.getHour(); int minute = localTime.getMinute(); int second = localTime.getSecond(); System.out.println("當前時間:" + localTime); System.out.println("時:" + hour + " 分:" + minute + " 秒:" + second);//獲取自定義時間 LocalTime specifiedTime = LocalTime.of(15, 30, 45); System.out.println("自定義時間:" + specifiedTime);

運行結果:

當前時間:13:45:59.039 時:13 分:45 秒:59 自定義時間:15:30:45

使用DateTimeFormatter進行時間格式化
代碼示例:

//使用DateTimeFormatter類進行時間格式化 LocalTime localTime = LocalTime.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH時mm分ss秒"); System.out.println("格式化后的時間:" + formatter.format(localTime));//將字符串轉為LocalTime類型 LocalTime newTime = LocalTime.parse("20時35分45秒", formatter); System.out.println("字符串轉時間類型:" + newTime);

運行結果:

格式化后的時間:20時38分33秒 字符串轉時間類型:20:35:45

比較兩個時間的先后順序
代碼示例:

//equals方法比較兩個時間是否相等 if(localTime.equals(specifiedTime)) {System.out.println("localTime與specifiedTime相等!"); } else {//isAfter、isBefore方法比較兩個時間的先后順序if(localTime.isAfter(specifiedTime)) {System.out.println("localTime晚于specifiedTime!");}if(localTime.isBefore(specifiedTime)) {System.out.println("localTime早于specifiedTime!");} }

運行結果:

localTime早于specifiedTime!

對時間做加減運算
代碼示例:

LocalTime localTime = LocalTime.now(); System.out.println("當前時間:" + localTime); System.out.println("2小時后時間:" + localTime.plusHours(2)); System.out.println("30分鐘后時間:" + localTime.plusMinutes(30)); System.out.println("500秒后日時間:" + localTime.plusSeconds(500));System.out.println("2小時前時間:" + localTime.minusHours(2)); System.out.println("30分鐘前時間:" + localTime.minusMinutes(30)); System.out.println("500秒前時間:" + localTime.minusSeconds(500));

運行結果:

當前時間:14:10:15.666 2小時后時間:16:10:15.666 30分鐘后時間:14:40:15.666 500秒后時間:14:18:35.6662小時前時間:12:10:15.666 30分鐘前時間:13:40:15.666 500秒前時間:14:01:55.666

LocalDateTime類

LocalDateTime是一個不可變的日期-時間對象,它既包含了日期同時又含有時間,默認格式是yyyy-MM-ddTHH-mm-ss.zzz
獲取當前日期時間以及自定義日期時間
示例代碼:

//獲取當前的日期時間 LocalDateTime localDateTime = LocalDateTime.now(); System.out.println("當前的日期時間:" + localDateTime);//獲取自定義的的日期時間 LocalDateTime specifiedDateTime = LocalDateTime.of(LocalDate.now(), LocalTime.now()); System.out.println("自定義的日期時間:" + specifiedDateTime);

運行結果:

當前的日期時間:2018-12-12T14:31:00.163 自定義的日期時間:2018-12-12T14:31:00.164

轉化為日期和時間
代碼示例:

//轉化為LocalDate和LocalTime LocalDate localDate = localDateTime.toLocalDate(); LocalTime localTime = localDateTime.toLocalTime(); System.out.println("當前日期:" + localDate); System.out.println("當前時間:" + localTime);

運行結果:

當前日期:2018-12-12 當前時間:14:31:00.163

轉載于:https://www.cnblogs.com/liantdev/p/10108504.html

總結

以上是生活随笔為你收集整理的java 8 新特性之日期-时间 API的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。