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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JAVA 8 新日期和时间API 学习总结

發(fā)布時間:2025/4/9 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA 8 新日期和时间API 学习总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

昨天學(xué)了Java8新的時間日期api,以前我們做時間計算大多涉及Date,Calendar類,現(xiàn)在幾乎全部有了替代的API,使用更加簡單易用,通過幾個例子記錄一下。

1.取得瞬間點

System.currentTimeMillis()

?

以前我們?yōu)榱藴y試程序性能,會用下面的語句拿到當(dāng)前時間的瞬間點,然后前后做減法,得出毫秒值,現(xiàn)在有了專門的Instant類替代。

// 代替System.currentTimeMillis() //Instant主要是表示一個瞬時點在時間線上 Instant start = Instant.now(); for (int i = 0; i < 100000000; i++) { } Instant end = Instant.now();Duration between = Duration.between(start, end); long l = between.toMillis(); System.out.println("程序執(zhí)行了" + l + "毫秒");

?

Duration類可以表示兩個時間點之間的時間量。這里用toMillis可以轉(zhuǎn)換成毫秒,你也可以用轉(zhuǎn)換成小時,分,秒等。

2.本地時間
以前日期計算 用Calendar類,現(xiàn)在有LocalDate,LocalDateTime,LocalTime。LocalDate有日期沒時間,LocalDateTime有日期時間,LocalTime沒日期有時間,它們都是不帶時區(qū)概念的。

plusDays()和minusDays()可以隨意加減日期

//代替 Calendar LocalDate now = LocalDate.now(); System.out.println("今天的日期" + now.toString()); LocalDate after5days = now.plusDays(5); System.out.println("五天后的日期" + after5days.toString());

?

新的api計算今天是星期幾更加符合人類的思維,星期一返回就是1,星期天返回7

//計算今天是星期幾 int value = now.getDayOfWeek().getValue();switch (value) {case 1:System.out.println("今天星期一");break;case 2:System.out.println("今天星期二");break;case 3:System.out.println("今天星期三");break;case 4:System.out.println("今天星期四");break;case 5:System.out.println("今天星期五");break;case 6:System.out.println("今天星期六");break;case 7:System.out.println("今天星期日");break;default:System.out.println("出錯了"); }

?

計算下一個星期五等簡單的邏輯操作也有專門的api可以直接調(diào)用,主要依賴TemporalAdjusters提供的一些靜態(tài)方法。

//計算下個星期五(從今天開始算,如果今天是星期五,就會返回今天的日期) //LocalDate不帶時區(qū)概念 LocalDate nextFriday = now.with(TemporalAdjusters.nextOrSame(DayOfWeek.FRIDAY)); System.out.println("下一個星期五是:" + nextFriday);//計算這個月的第一天 LocalDate firstDayOfMonth = now.with(TemporalAdjusters.firstDayOfMonth()); System.out.println("這個月的第一天是:" + firstDayOfMonth);

?

3.格式化日期和解析日期

格式化主要依靠DateTimeFormatter類,你可以給它自定義格式,它幫你格式化字符串,或從字符串解析成日期,
用的時候注意LocalDate,LocalDateTime,LocalTime三個類有些不帶日期和時間,不然解析或格式化的時候會報錯。

格式化的規(guī)范:

//格式化時間 LocalDateTime now1 = LocalDateTime.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH時mm分"); String formatTime = formatter.format(now1); System.out.println("格式化的時間" + formatTime);//字符串轉(zhuǎn)時間 LocalDateTime parse = LocalDateTime.parse("2017年03月06日 06時56分32秒", DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH時mm分ss秒")); System.out.println("解析的時間" + parse);

?

轉(zhuǎn)載于:https://www.cnblogs.com/lovejj1994/p/7182154.html

總結(jié)

以上是生活随笔為你收集整理的JAVA 8 新日期和时间API 学习总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。