Java8 日期類(lèi)相關(guān)介紹

1. 簡(jiǎn)介

Java8的時(shí)間類(lèi)有兩個(gè)重要的特性

  • 線程安全
  • 不可變類(lèi)鼓黔,返回的都是新的對(duì)象

顯然旭旭,該特性解決了原來(lái)java.util.Date類(lèi)與SimpleDateFormat線程不安全的問(wèn)題谎脯。同時(shí)Java8的時(shí)間類(lèi)提供了諸多內(nèi)置方法,方便了開(kāi)發(fā)者對(duì)時(shí)間進(jìn)行相應(yīng)的操作持寄。

Java8時(shí)間相關(guān)類(lèi).png

上圖為Java8相關(guān)的時(shí)間類(lèi)及時(shí)間范圍源梭,具體類(lèi)如下。

  • LocalDate
  • LocalTime
  • LocalDateTime
  • ZoneId
  • ZonedDateTime
  • Instant

2. 時(shí)間相關(guān)類(lèi)

2.1 Instant類(lèi)

Instant類(lèi)用來(lái)表示格林威治時(shí)間(UTC)開(kāi)始的時(shí)間點(diǎn)稍味,初始時(shí)間為1970-01-01T00:00:00Z废麻。也就是從1970年一月一號(hào)開(kāi)始計(jì)時(shí),得到的秒值甚至是是納秒值模庐。該時(shí)間戳可以與日期時(shí)間轉(zhuǎn)換烛愧。因此可以表示人類(lèi)世界最完整的時(shí)間。該類(lèi)相比原來(lái)java.util.Date類(lèi),精確到了納秒級(jí)別怜姿。

獲取當(dāng)前的秒值和納秒值

// Java代碼如下
Instant instant = Instant.now();
System.out.println(instant);
System.out.println(instant.getEpochSecond());
System.out.println(instant.getNano());

結(jié)果如下
2019-08-28T07:59:54.979Z
1566979194
979000000

將指定秒值轉(zhuǎn)為Instant慎冤。Instant.ofEpochSecond()方法。

Instant instant1 = Instant.ofEpochSecond(1566981233L);
System.out.println(instant1);

2.2 LocalDate沧卢、LocalTime粪薛、LocalDateTime、ZonedDateTime

  • Java8使用LocalDate搏恤、LocalTime、LocalDateTime湃交、ZonedDateTime分別操作日期熟空、時(shí)間、日期和時(shí)間搞莺。
  • 這四個(gè)類(lèi)的默認(rèn)使用系統(tǒng)時(shí)區(qū)

獲取當(dāng)天日期及時(shí)間

// Java相關(guān)代碼如下
LocalDate today = LocalDate.now();
System.out.println(today);

LocalDateTime localDateTime = LocalDateTime.now();
System.out.println(localDateTime);

LocalTime localTime = LocalTime.now();
System.out.println(localTime);

ZonedDateTime zonedDateTime = ZonedDateTime.now();
System.out.println(zonedDateTime);

ZoneId zoneId = ZoneId.systemDefault();
System.out.println(zoneId);

結(jié)果如下

2019-08-28
2019-08-28T17:42:01.964
17:42:01.965
2019-08-28T17:42:01.965+08:00[Asia/Shanghai]
Asia/Shanghai

指定日期2019-09-30并通過(guò)isBefore()判斷是否今天在指定日期之前

LocalDate future = LocalDate.of(2019, 9, 30);
boolean before = today.isBefore(future);
System.out.println(before);

LocalDateTime轉(zhuǎn)String 通過(guò)DateTimeFormatter指定轉(zhuǎn)換格式

String formatStr = localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss"));
System.out.println(formatStr);

String轉(zhuǎn)為L(zhǎng)ocalDate

String str = "2019-01-02";
LocalDate localDate2 = LocalDate.parse(str, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
System.out.println(localDate2);

2.3 LocalDateTime與Instant的互相轉(zhuǎn)換

獲取當(dāng)天的秒值和毫秒值息罗。LocalDateTime轉(zhuǎn)Instant獲取時(shí)間戳。由于LocalDateTime并沒(méi)有包含時(shí)區(qū)才沧,轉(zhuǎn)為Instant需要指明所在時(shí)區(qū)迈喉。北京時(shí)間也就是東八區(qū)ZoneOffset.of("+8")

long milliSecond = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
System.out.println(milliSecond);

long second = LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8"));
System.out.println(second);

Instant時(shí)間戳轉(zhuǎn)LocalDateTime。使用LocalDateTime.ofInstant方法温圆,需要指定轉(zhuǎn)換為哪個(gè)時(shí)區(qū)的時(shí)間

LocalDateTime localDateTime2 = LocalDateTime.ofInstant(Instant.now(), ZoneId.systemDefault()); //使用系統(tǒng)默認(rèn)時(shí)間
System.out.println(localDateTime2);

結(jié)果如下
2019-08-28T16:33:53.639

3. 參考文章

https://blog.csdn.net/u013066244/article/details/96443952

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
禁止轉(zhuǎn)載挨摸,如需轉(zhuǎn)載請(qǐng)通過(guò)簡(jiǎn)信或評(píng)論聯(lián)系作者。
  • 序言:七十年代末岁歉,一起剝皮案震驚了整個(gè)濱河市得运,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌锅移,老刑警劉巖熔掺,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異非剃,居然都是意外死亡置逻,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)备绽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)券坞,“玉大人,你說(shuō)我怎么就攤上這事疯坤”剑” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵压怠,是天一觀的道長(zhǎng)眠冈。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么蜗顽? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任布卡,我火速辦了婚禮,結(jié)果婚禮上雇盖,老公的妹妹穿的比我還像新娘忿等。我一直安慰自己,他們只是感情好崔挖,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布贸街。 她就那樣靜靜地躺著,像睡著了一般狸相。 火紅的嫁衣襯著肌膚如雪薛匪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,772評(píng)論 1 290
  • 那天脓鹃,我揣著相機(jī)與錄音逸尖,去河邊找鬼。 笑死瘸右,一個(gè)胖子當(dāng)著我的面吹牛娇跟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播太颤,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼苞俘,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了栋齿?” 一聲冷哼從身側(cè)響起苗胀,我...
    開(kāi)封第一講書(shū)人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎瓦堵,沒(méi)想到半個(gè)月后基协,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡菇用,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年澜驮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惋鸥。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡杂穷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出卦绣,到底是詐尸還是另有隱情耐量,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布滤港,位于F島的核電站廊蜒,受9級(jí)特大地震影響趴拧,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜山叮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一著榴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧屁倔,春花似錦脑又、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至钞翔,卻和暖如春口叙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背嗅战。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留俺亮,地道東北人驮捍。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像脚曾,于是被迫代替她去往敵國(guó)和親东且。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容