欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中使用LocalDate根據(jù)日期來計算年齡的實現(xiàn)方法

 更新時間:2018年01月07日 13:40:05   作者:程序原養(yǎng)成記  
這篇文章主要介紹了Java中使用LocalDate根據(jù)日期來計算年齡的實現(xiàn)方法,需要的朋友可以參考下

Java中和日期直接相關(guān)的類有很多,平時最常用到的就是java.util package下面的Date和Calendar,需要用到格式的時候還會用到j(luò)ava.text.SimpleDateFormat

首先吐槽一下,Date和Calendar實際用起來還是有一些別扭的,剛開始用的時候不熟悉,老是分不清Date和Calendar類的具體用法和區(qū)別。

而且Calendar類的set方法來設(shè)置日期時又有一些反人類,設(shè)置月份的時候總是要腦補一下減去1,比如要設(shè)置為2018年1月6日就要設(shè)置成2018,0,6,因為在這里一月是用0來表示的:

Calendar cal = Calendar.getInstance();
cal.set(2018, 0, 8);

具體的原因可以看這里的回答:StackOverflow: Why is January month 0 in Java Calendar?

反正我是不太看得下去。。

前幾天有一個簡單的需求,就是根據(jù)某兩個日期來計算出年齡。上網(wǎng)查了一下,直接拋棄了難用的Date和Calendar類,直接用java.time.LocalDate來做。話不多說直接上代碼:

import java.time.LocalDate;

public class TestLocalDate {
  public static void main(String[] args) {
    LocalDate date1 = LocalDate.of(2018, 1, 6);
    LocalDate date2 = LocalDate.of(1991, 1, 3);
    int age = date2.until(date1).getYears();

    System.out.println("You're " + age + " years old.");
  }
}

輸出結(jié)果:

You're 27 years old.

拋棄了略顯復(fù)雜令人頭大的Date和Calendar類之間的互相轉(zhuǎn)換調(diào)用,代碼讀起來也特別清晰,是不是很爽!

java.time是Java 8中新引入的一個日期時間庫,下面的這些方法都是java.time包里面的。

下面來看一下這段代碼是怎么來用簡單清爽的方式計算時間差的:

首先,LocalDate是一個immutable class(不可變類),所以和String類一樣,不需要new一個新的對象才可以使用(?)

然后是LocalDate類用于設(shè)定日期的of方法:

public static LocalDate of(int year, Month month, int dayOfMonth)
public static LocalDate of(int year, int month, int dayOfMonth)

of一共有三個重載的方法,這里舉出其中的兩個。第一個的Month類是一個枚舉類型,包含了月份的英文名稱,如JANUARY, NOVEMBER等

第二個就是再正常不過的設(shè)置年月日,好消息是這里的month是從1開始的,也就是說再也不用手動減去1了!??!

下面是LocalDate類用于比較日期的until方法:

public Period until(ChronoLocalDate endDateExclusive)

這個方法返回的是一個Period類型的對象。

Period代表的是形如“2年,3個月,4天”的一段時間間隔。接下來調(diào)用的getYears方法就是屬于Period類的。

最后再來看一下Period類的一些獲取時間間隔的方法:

public int getYears()
public int getMonths()
public int getDays()

這三個方法分別用于獲取時間間隔的年、月和日。對,就是這么簡單。

總結(jié)

以上所述是小編給大家介紹的Java中使用LocalDate根據(jù)日期來計算年齡的實現(xiàn)方法,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!

相關(guān)文章

  • java.sql.SQLException:com.mysql.cj.jdbc.Driver報錯問題解決

    java.sql.SQLException:com.mysql.cj.jdbc.Driver報錯問題解決

    這篇文章主要給大家介紹了關(guān)于java.sql.SQLException:com.mysql.cj.jdbc.Driver報錯問題解決的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08
  • Java中List與數(shù)組之間的相互轉(zhuǎn)換

    Java中List與數(shù)組之間的相互轉(zhuǎn)換

    在日常Java學(xué)習(xí)或項目開發(fā)中,經(jīng)常會遇到需要int[]數(shù)組和List列表相互轉(zhuǎn)換的場景,然而往往一時難以想到有哪些方法,最后可能會使用暴力逐個轉(zhuǎn)換法,往往不是我們所滿意的,下面這篇文章主要給大家介紹了關(guān)于Java中List與數(shù)組之間的相互轉(zhuǎn)換,需要的朋友可以參考下
    2023-05-05
  • jdbc鏈接遠(yuǎn)程數(shù)據(jù)庫進行修改url操作

    jdbc鏈接遠(yuǎn)程數(shù)據(jù)庫進行修改url操作

    這篇文章主要為大家詳細(xì)介紹了jdbc鏈接遠(yuǎn)程數(shù)據(jù)庫進行修改url操作,感興趣的小伙伴們可以參考一下
    2016-06-06
  • 深入理解Java設(shè)計模式之簡單工廠模式

    深入理解Java設(shè)計模式之簡單工廠模式

    這篇文章主要介紹了JAVA設(shè)計模式之簡單工廠模式的的相關(guān)資料,文中示例代碼非常詳細(xì),供大家參考和學(xué)習(xí),感興趣的朋友可以了解下
    2021-11-11
  • 詳解Java如何在Array和List之間進行轉(zhuǎn)換

    詳解Java如何在Array和List之間進行轉(zhuǎn)換

    這篇文章主要為大家介紹了詳解Java如何在Array和List之間進行轉(zhuǎn)換的方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • 使用springMVC通過Filter實現(xiàn)防止xss注入

    使用springMVC通過Filter實現(xiàn)防止xss注入

    這篇文章主要介紹了使用springMVC通過Filter實現(xiàn)防止xss注入的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 如何讓W(xué)in10實現(xiàn)Java文件的開機自啟動

    如何讓W(xué)in10實現(xiàn)Java文件的開機自啟動

    這篇文章主要介紹了如何讓W(xué)in10實現(xiàn)Java文件的開機自啟動,對于一些想要一直運行的Java文件,就會造成每次系統(tǒng)更新之后的重啟導(dǎo)致Java文件無法繼續(xù)運行。,需要的朋友可以參考下
    2019-06-06
  • HashMap線程不安全問題解析

    HashMap線程不安全問題解析

    這篇文章主要介紹了HashMap線程不安全問題解析,HashMap的線程不安全體現(xiàn)在會造成死循環(huán)、數(shù)據(jù)丟失、數(shù)據(jù)覆蓋等問題,其中死循環(huán)和數(shù)據(jù)丟失是在JDK1.7中出現(xiàn)的問題,在JDK1.8中已經(jīng)得到解決,但是1.8中仍會有數(shù)據(jù)覆蓋這樣的問題,需要的朋友可以參考下
    2023-11-11
  • java中使用try-catch-finally一些值得注意的事(必看)

    java中使用try-catch-finally一些值得注意的事(必看)

    下面小編就為大家?guī)硪黄猨ava中使用try-catch-finally一些值得注意的事(必看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • java中如何判斷JSONObject是否存在某個Key

    java中如何判斷JSONObject是否存在某個Key

    這篇文章主要介紹了java中如何判斷JSONObject是否存在某個Key,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07

最新評論