国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

JAVA 8 新日期和時間API 學習總結

2019-11-06 06:08:07
字體:
來源:轉載
供稿:網友

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

1.取得瞬間點

System.currentTimeMillis()

以前我們為了測試程序性能,會用下面的語句拿到當前時間的瞬間點,然后前后做減法,得出毫秒值,現在有了專門的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.Duration類可以表示兩個時間點之間的時間量。這里用toMillis可以轉換成毫秒,你也可以用轉換成小時,分,秒等。

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

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

//代替 CalendarLocalDate 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可以直接調用,主要依賴TemporalAdjusters提供的一些靜態方法。

//計算下個星期五(從今天開始算,如果今天是星期五,就會返回今天的日期)//LocalDate不帶時區概念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三個類有些不帶日期和時間,不然解析或格式化的時候會報錯。

格式化的規范: 這里寫圖片描述

//格式化時間LocalDateTime now1 = LocalDateTime.now();DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH時mm分");String formatTime = formatter.format(now1);System.out.println("格式化的時間" + formatTime);//字符串轉時間LocalDateTime parse = LocalDateTime.parse("2017年03月06日 06時56分32秒", DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH時mm分ss秒"));System.out.println("解析的時間" + parse);
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 珠海市| 灵寿县| 西峡县| 平定县| 墨江| 原阳县| 扎赉特旗| 夏河县| 孝感市| 屏东县| 翼城县| 密云县| 鹤岗市| 霍邱县| 上犹县| 蒙阴县| 都昌县| 定襄县| 庆云县| 旬邑县| 南昌市| 通道| 曲松县| 大田县| 游戏| 汝城县| 五寨县| 乐清市| 永川市| 松江区| 汶川县| 九龙城区| 瑞安市| 河北区| 湄潭县| 阳江市| 双江| 衡水市| 青铜峡市| 竹溪县| 眉山市|