java8新特性(6)— 日期与时间
生活随笔
收集整理的這篇文章主要介紹了
java8新特性(6)— 日期与时间
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
java8新特性(6)— 日期與時間
全新的日期與時間處理
package com.common.jdk8;import java.time.*;//Java 8通過發(fā)布新的Date-Time API (JSR 310)來進(jìn)一步加強(qiáng)對日期與時間的處理。 //在舊版的 Java 中,日期時間 API 存在諸多問題,其中有: //非線程安全 ? java.util.Date 是非線程安全的,所有的日期類都是可變的,這是Java日期類最大的問題之一。 //設(shè)計很差 ? Java的日期/時間類的定義并不一致,在java.util和java.sql的包中都有日期類,此外用于格式化和解析的類在java.text包中定義。java.util.Date同時包含日期和時間,而java.sql.Date僅包含日期,將其納入java.sql包并不合理。另外這兩個類都有相同的名字,這本身就是一個非常糟糕的設(shè)計。 //時區(qū)處理麻煩 ? 日期類并不提供國際化,沒有時區(qū)支持,因此Java引入了java.util.Calendar和java.util.TimeZone類,但他們同樣存在上述所有的問題。//Java 8 在 java.time 包下提供了很多新的 API。以下為兩個比較重要的 API: //Local(本地) ? 簡化了日期時間的處理,沒有時區(qū)的問題。 //Zoned(時區(qū)) ? 通過制定的時區(qū)處理日期時間。//新的java.time包涵蓋了所有處理日期,時間,日期/時間,時區(qū),時刻(instants),過程(during)與時鐘(clock)的操作。 public class Jdk8Test6 {public static void main(String args[]){Jdk8Test6 jdk8Test6 = new Jdk8Test6();jdk8Test6.testLocalDateTime();jdk8Test6.testZonedDateTime();}public void testLocalDateTime(){// 獲取當(dāng)前的日期時間LocalDateTime currentTime = LocalDateTime.now();System.out.println("當(dāng)前時間: " + currentTime);LocalDate date1 = currentTime.toLocalDate();System.out.println("date1: " + date1);Month month = currentTime.getMonth();int day = currentTime.getDayOfMonth();int seconds = currentTime.getSecond();System.out.println("月: " + month +", 日: " + day +", 秒: " + seconds);LocalDateTime date2 = currentTime.withDayOfMonth(10).withYear(2012);System.out.println("date2: " + date2);// 12 december 2014LocalDate date3 = LocalDate.of(2014, Month.DECEMBER, 12);System.out.println("date3: " + date3);// 22 小時 15 分鐘LocalTime date4 = LocalTime.of(22, 15);System.out.println("date4: " + date4);// 解析字符串LocalTime date5 = LocalTime.parse("20:15:30");System.out.println("date5: " + date5);}public void testZonedDateTime(){// 獲取當(dāng)前時間日期ZonedDateTime date1 = ZonedDateTime.parse("2015-12-03T10:15:30+05:30[Asia/Shanghai]");System.out.println("date1: " + date1);ZoneId id = ZoneId.of("Europe/Paris");System.out.println("ZoneId: " + id);ZoneId currentZone = ZoneId.systemDefault();System.out.println("當(dāng)期時區(qū): " + currentZone);} }運(yùn)行結(jié)果
當(dāng)前時間: 2019-07-02T01:25:17.250 date1: 2019-07-02 月: JULY, 日: 2, 秒: 17 date2: 2012-07-10T01:25:17.250 date3: 2014-12-12 date4: 22:15 date5: 20:15:30 date1: 2015-12-03T10:15:30+08:00[Asia/Shanghai] ZoneId: Europe/Paris 當(dāng)期時區(qū): Asia/Shanghai總結(jié)
以上是生活随笔為你收集整理的java8新特性(6)— 日期与时间的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 限流算法(漏桶算法、令牌桶算法)对比
- 下一篇: CocoaPods通过网络代理执行资源更