成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

樂(lè)字節(jié)-Java8新特性之Date API

suemi / 1274人閱讀

摘要:上一篇文章,小樂(lè)給大家?guī)?lái)了新特性之,接下來(lái)本文將會(huì)給大家介紹新特性之前言通過(guò)發(fā)布新的來(lái)進(jìn)一步加強(qiáng)對(duì)日期與時(shí)間的處理。

上一篇文章,小樂(lè)給大家?guī)?lái)了Java8新特性之Optional,接下來(lái)本文將會(huì)給大家介紹Java8新特性之Date API

前言:

Java 8通過(guò)發(fā)布新的Date-Time API來(lái)進(jìn)一步加強(qiáng)對(duì)日期與時(shí)間的處理。 舊版的 Java 中,日期時(shí)間 API 存在諸多問(wèn)題 :

非線程安全?? java.util.Date 是非線程安全的,所有的日期類(lèi)都是可變的,

設(shè)計(jì)很差?? Java的日期/時(shí)間類(lèi)的定義并不一致,在java.util和java.sql的包中都有日期類(lèi),此外用于格式化和解析的類(lèi)在java.text包中定義。

時(shí)區(qū)處理麻煩?? 日期類(lèi)并不提供國(guó)際化,沒(méi)有時(shí)區(qū)支持

Java 8 在?java.time?包下提供了很多新的 API。以下為兩個(gè)比較重要的 API:

Local(本地)?: 簡(jiǎn)化了日期時(shí)間的處理,沒(méi)有時(shí)區(qū)的問(wèn)題。

Zoned(時(shí)區(qū))?? 通過(guò)制定的時(shí)區(qū)處理日期時(shí)間。

新的java.time包涵蓋了所有處理日期,時(shí)間,日期/時(shí)間,時(shí)區(qū),時(shí)刻(instants),過(guò)程(during)與時(shí)鐘(clock)的操作。

1、LocalDateTime

LocalDateTime ldt = LocalDateTime.now();
// 獲取系統(tǒng)當(dāng)前時(shí)間
System.out.println(ldt);
LocalDateTime ldt2 = LocalDateTime.of(2019, 01, 01, 12, 12, 12, 888000000);
// 構(gòu)建LocalDateTime對(duì)象ldt
System.out.println(ldt2);
// 獲取明年此時(shí)的時(shí)間
LocalDateTime ldt3 = ldt.plusYears(1);
System.out.println(ldt3);
// 獲取去年此刻時(shí)間
LocalDateTime ldt4 = ldt.minusYears(1);
System.out.println(ldt4);
// 獲取年
System.out.println(ldt.getYear());
// 獲取月份
System.out.println(ldt.getMonthValue());
// 獲取本月第某天
System.out.println(ldt.getDayOfMonth());
// 獲取時(shí)
System.out.println(ldt.getHour());
// 獲取分
System.out.println(ldt.getMinute());
// 獲取秒
System.out.println(ldt.getSecond());
// 獲取納秒
System.out.println(ldt.getNano());
2、時(shí)間戳
時(shí)間戳:以Unix元年:1970年1月1日 00:00:00 至目前時(shí)間之間的毫秒值 

public static void testInstant(){
    // 時(shí)間戳 Instant
    Instant ins1 = Instant.now();
    // 默認(rèn)獲取UTC時(shí)間,協(xié)調(diào)世界時(shí)
    System.out.println(ins1);
    OffsetDateTime odt = ins1.atOffset(ZoneOffset.ofHours(8));
    System.out.println(odt);
    System.out.println(ins1.toEpochMilli());
    Instant ins2 = Instant.ofEpochSecond(60);
    System.out.println(ins2);
}
3、日期時(shí)間間隔計(jì)算:Duration、Period
public static void testDuration(String[] args) {
        Instant ins1 = Instant.now();
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        Instant ins2 = Instant.now();
        Duration dura = Duration.between(ins1, ins2);
        System.out.println(dura.toMillis());
        System.out.println("----------------------");
        LocalTime lt1 = LocalTime.now();
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        LocalTime lt2 = LocalTime.now();
        Duration dura2 = Duration.between(lt1, lt2);
        System.out.println(dura2.toMillis());
    }

    public  static void testPeriod(){
        LocalDate ld1 = LocalDate.of(2015, 2, 2);
        LocalDate ld2 = LocalDate.now();
        Period period = Period.between(ld1, ld2);
        System.out.println(period);
        System.out.println("相差" + period.getYears() + "年"
                + period.getMonths() + "月"
                + period.getDays() + "天");

    }
4、時(shí)間校正:TemporalAdjuster
public  static  void testTemporalAdjuster(){
    LocalDateTime ldt = LocalDateTime.now();
    System.out.println(ldt);
    LocalDateTime ldt2 = ldt.withDayOfMonth(10);
    System.out.println(ldt2);
    LocalDateTime ldt3 = ldt.with(TemporalAdjusters.next(DayOfWeek.SATURDAY));
    System.out.println(ldt3);
}
5、日期時(shí)間格式化
public  static  void testDateFormate(){
        DateTimeFormatter dtf = DateTimeFormatter.ISO_DATE;
        LocalDateTime ldt = LocalDateTime.now();
        String strDate = ldt.format(dtf);
        System.out.println(strDate);
        System.out.println("----------------------------");
        DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
        String strDate2 = dtf2.format(ldt);
        System.out.println(strDate2);
        System.out.println("-----------------------------");
        LocalDateTime newDate = ldt.parse(strDate2, dtf2);
        System.out.println(newDate);
    }
6、TimeZone 時(shí)區(qū)處理
    // 時(shí)區(qū)的處理
    public  static  void testTimeZone(){
        LocalDateTime ldt = LocalDateTime.now(ZoneId.of("Europe/Dublin"));
        System.out.println(ldt);
        LocalDateTime ldt2 = LocalDateTime.now(ZoneId.of("Europe/Dublin"));
        ZonedDateTime zdt = ldt2.atZone(ZoneId.of("Europe/Dublin"));
        System.out.println(zdt);
    }

這次就分享到這里了,后面小樂(lè)會(huì)繼續(xù)給大家介紹Java8新特性的,請(qǐng)大家繼續(xù)多多關(guān)注哦!樂(lè)字節(jié)只講Java技術(shù)干貨。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/77601.html

相關(guān)文章

  • 樂(lè)字節(jié)-Java8特性Base64和重復(fù)注解與類(lèi)型注解

    摘要:上一篇小樂(lè)給大家說(shuō)了樂(lè)字節(jié)新特性之,接下來(lái)小樂(lè)繼續(xù)給大家說(shuō)一說(shuō)新特性之和重復(fù)注解與類(lèi)型注解。內(nèi)部類(lèi)與方法相關(guān)的內(nèi)部類(lèi)這是一個(gè)靜態(tài)類(lèi)。也是一個(gè)靜態(tài)類(lèi)。 上一篇小樂(lè)給大家說(shuō)了《樂(lè)字節(jié)-Java8新特性之Date API》,接下來(lái)小樂(lè)繼續(xù)給大家說(shuō)一說(shuō)Java8新特性之Base64和重復(fù)注解與類(lèi)型注解。 一、Base64 在Java 8中,內(nèi)置了Base64編解碼相關(guān)的特性。Java 8中使用...

    1treeS 評(píng)論0 收藏0
  • 樂(lè)字節(jié)-Java8特性方法引用

    摘要:上一篇小樂(lè)介紹了新特性函數(shù)式接口,大家可以點(diǎn)擊回顧。中引入方法引用新特性用于簡(jiǎn)化應(yīng)用對(duì)象方法的調(diào)用,方法引用是用來(lái)直接訪問(wèn)類(lèi)或者實(shí)例的已經(jīng)存在的方法或者構(gòu)造方法。方法引用是一種更簡(jiǎn)潔易懂的表達(dá)式。 上一篇小樂(lè)介紹了《Java8新特性-函數(shù)式接口》,大家可以點(diǎn)擊回顧。這篇文章將接著介紹Java8新特性之方法引用。 Java8 中引入方法引用新特性,用于簡(jiǎn)化應(yīng)用對(duì)象方法的調(diào)用,?方法引用是...

    Codeing_ls 評(píng)論0 收藏0
  • 樂(lè)字節(jié)-Java8特性-接口默認(rèn)方法

    摘要:注意當(dāng)多個(gè)父接口中存在相同的默認(rèn)方法時(shí),子類(lèi)中以就近原則繼承。定義靜態(tài)默認(rèn)方法這是版簡(jiǎn)易計(jì)算器接口默認(rèn)方法使用定義接口并提供默認(rèn)打印方法定義接口默認(rèn)方法支持方法形參這是數(shù)值運(yùn)算基本接口。。。 總概 JAVA8 已經(jīng)發(fā)布很久,而且毫無(wú)疑問(wèn),java8是自java5(2004年發(fā)布)之后的最重要的版本。其中包括語(yǔ)言、編譯器、庫(kù)、工具和JVM等諸多方面的新特性。 Java8 新特性列表如下:...

    arashicage 評(píng)論0 收藏0
  • 樂(lè)字節(jié)-Java8特性Stream流(下)

    摘要:歸約操作計(jì)算有效訂單總金額有效訂單總金額收集數(shù)據(jù)收集將流轉(zhuǎn)換為其他形式,方法作為終端操作,接收一個(gè)接口的實(shí)現(xiàn),用于給中元素做匯總的方法。 接上一篇:《Java8新特性之stream》,下面繼續(xù)接著講Stream 5、流的中間操作 常見(jiàn)的流的中間操作,歸為以下三大類(lèi):篩選和切片流操作、元素映射操作、元素排序操作:showImg(https://segmentfault.com/img/b...

    20171112 評(píng)論0 收藏0
  • 樂(lè)字節(jié)-Java8核心特性實(shí)戰(zhàn)Stream(流)

    摘要:大家好,我是樂(lè)字節(jié)的小樂(lè)。需要注意的是很多流操作本身就會(huì)返回一個(gè)流,所以多個(gè)操作可以直接連接起來(lái),如下圖這樣,操作可以進(jìn)行鏈?zhǔn)秸{(diào)用,并且并行流還可以實(shí)現(xiàn)數(shù)據(jù)流并行處理操作。為集合創(chuàng)建并行流。 大家好,我是樂(lè)字節(jié)的小樂(lè)。說(shuō)起流,我們會(huì)聯(lián)想到手機(jī)、電腦組裝流水線,物流倉(cāng)庫(kù)商品包裝流水線等等,如果把手機(jī) ,電腦,包裹看做最終結(jié)果的話,那么加工商品前的各種零部件就可以看做數(shù)據(jù)源,而中間一系列的...

    wenshi11019 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<