最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

java 核心技術(shù)-12版 卷Ⅰ- 4.2.2 LocalDate類

2023-02-18 22:12 作者:CC挑燈夜讀_谷  | 我要投稿

????在前面的例子中,我們使用了Java標(biāo)準(zhǔn)類庫中的Date 類。Date類的實例有一個狀態(tài),也就是一個特定的時間點(diǎn)。

????盡管在使用 Date類時不必知道這一點(diǎn),但時間是用距離一個固定時間點(diǎn)的毫秒數(shù)(可正可負(fù))表示的,這個時間點(diǎn)就是所謂的紀(jì)元(epoch),它是UTC時間1970年1月1日 00:00:00。UTC 就是Coordinated Universal Time(國際協(xié)調(diào)時間),與大家熟悉的GMT(Greenwich Mean Time,格林尼治時間)一樣,是一種實用的科學(xué)標(biāo)準(zhǔn)時間。

????但是,Date類對于處理人類記錄日期的日歷信息并不是很有用,如“December 31,1999”。這個特定的日期描述遵循Gregorian 陽歷,這是世界上大多數(shù)國家使用的日歷。但是,同樣的這個時間點(diǎn)采用中國或希伯來的陰歷來描述會大不相同,倘若我們有來自火星的顧客,基于他們使用的火星歷來描述這個時間點(diǎn)就更不一樣了。

注釋:有史以來,人類的文明與歷法的設(shè)計息息相關(guān), 日歷要為日期指定名字,指定太陽和月亮的周期次序。要了解有關(guān)世界上各種日歷的有趣解釋,從法國大革命的日歷到瑪雅人計算日期的方法,請參見Nachum Dershowitz 和 Edward M. Reingold 編寫的《Calendrical Calculations》第4版(劍橋大學(xué)出版社,2018年)

????類庫設(shè)計者決定將保存時間與給時間點(diǎn)命名分開。所以,標(biāo)準(zhǔn)Java類庫分別包含了兩個:一個是用來表示時間點(diǎn)的Date類;另一個是用大家熟悉的日歷表示法表示日期的LocalDate類。Java8引入了另外一些類來處理日期和時間的不同方面——有關(guān)內(nèi)容參見卷2第6章。

????將時間度量與日歷分開是一種很好的面向?qū)ο笤O(shè)計。通常,最好使用不同的類表示不同的概念。

????不要使用構(gòu)造器來構(gòu)造器LocalDate 類的對象。實際上,應(yīng)當(dāng)使用靜態(tài)工廠方法(factory method),它會代表你調(diào)用構(gòu)造器。下面的表達(dá)式:

????LocalDate.now();

????會構(gòu)造一個一個新對象,表示構(gòu)造這個對象時的日期。

????可以提供年、月和日來構(gòu)造有對應(yīng)一個特定日期的對象:

????LocalDate.of(1999,12,31);?

????當(dāng)然,通常我們都希望將構(gòu)造的對象存在一個對象變量中:

????LocalDate newYearsEve = LocalDate.of(1999 , 12, 31);

????一旦有了一個LocalDate對象,可以用方法getYear、getMonthValue和 getDayOfMonth 得到年月和日:

????int year = newYearEve.getYear(); // 1999

????int month = newYearEve.getMonthValue(); // 12

????int day = newYearEve.getDayOfMonth();//31

????看起來這似乎沒有多大的意義,因為這正是構(gòu)造對象時使用的那些值。不過,有時候可能有一個計算得到的日期,然后你希望調(diào)用這些方法來了解它的更多信息。例如, plusDays方法會生成一個新的LocalDate,如果把應(yīng)用這個方法的對象稱為當(dāng)前對象,那么這個新日期對象則是距當(dāng)前對象指定天數(shù)的一個新日期:

????LocalDate 類封裝了一些實例字段來維護(hù)所設(shè)置的日期。如果不查看源代碼,就不可能知道類內(nèi)部的日期表示。當(dāng)然,封裝的意義就在于內(nèi)部表示并不重要,重要的是類對外提供的方法。

????注釋:實際上,Date類也有得到年月日的方法,分別是 getYear getMonth 和getDay,不過這些方法已經(jīng)廢棄。當(dāng)類庫設(shè)計者意識到某個方法最初就不該引入時,就把它標(biāo)記為廢棄,不鼓勵使用。

????類庫設(shè)計者意識到應(yīng)當(dāng)單獨(dú)提供類來處理日歷,不過在此之前只寫方法已經(jīng)是Date類的一部分了。Java1.1 中引入較早的一組日歷類時,Date 方法被標(biāo)記為廢棄。雖然仍然可以在程序中使用這些方法,不過如果這樣做,編譯時會出現(xiàn)警告。最好不要使用廢棄的方法,因為將來的某個類庫版本很有可能將它們完全刪除。

????

????提示:JDK提供了jdeprscan工具來檢查你的代碼中是否使用了Java API已經(jīng)廢棄的特性。有關(guān)說明參見??http://docs.oracle.com/en/java/javase/17/docs/specs/man/jdeprscan.html


上期參考代碼


java 核心技術(shù)-12版 卷Ⅰ- 4.2.2 LocalDate類的評論 (共 條)

分享到微博請遵守國家法律
邵阳市| 大兴区| 霸州市| 黑水县| 自贡市| 鄱阳县| 名山县| 德保县| 洮南市| 灵台县| 静海县| 常宁市| 舟曲县| 鹤壁市| 郴州市| 女性| 滕州市| 卢氏县| 藁城市| 延安市| 龙南县| 淅川县| 南通市| 昭觉县| 宝丰县| 林芝县| 绥棱县| 镶黄旗| 沁水县| 奇台县| 青岛市| 西安市| 陕西省| 堆龙德庆县| 永昌县| 呼伦贝尔市| 驻马店市| 沐川县| 宁安市| 临高县| 册亨县|