日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

【Java】什么?你项目还在用Date表示时间?!日期类LocalDateTime的使用

發布時間:2024/2/28 java 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Java】什么?你项目还在用Date表示时间?!日期类LocalDateTime的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么?你項目還在用Date表示時間?!


這都什么年代了,怎么還在用 Date來處理和表示時間!
別的先不說,我們先來看幾個關于 Date用法的例子,這玩意真的好用嗎?

一、我想新建一個表示"此刻"的日期,打印出來:


第一行:這打印結果你第一眼能看明白?可讀性忒差了
第二行:今天是2019年,你給我返回個119,沒法讀
第三行:現在是12月份,你給我返回個11,這也沒法讀

二、假如我再想構造一個指定年、月、日的時間,我嘗試這么去做:


你看到啥了,連構造函數都被棄用了!

你可以再仔細瞅瞅,其實 Date里的很多方法現在都已經棄用了!

都這樣了,你項目還敢用這個嗎?你醒醒吧!

LocalDateTime不香嗎?

自 Java8開始, JDK中其實就增加了一系列表示日期和時間的新類,最典型的就是 LocalDateTime。直言不諱,這玩意的出現就是為了干掉之前 JDK版本中的 Date老哥!

同樣,我們也先來感受一下用法!

一、獲取當前此刻的時間


干得漂亮!

二、構造一個指定年、月、日的時間:

比如,想構造:2019年10月12月12日9時21分32秒

沒毛病!

三、修改日期


夠靈活!

四、格式化日期


我無話可說,漂亮

Java8中Timestamp和LocalDateTime互轉

1.Timestamp 轉 LocalDateTime

Timestamp time = Timestamp.from(Instant.now()); LocalDateTime localDateTime = time.toLocalDateTime();

2.LocalDateTime 轉 Timestamp

Timestamp time = Timestamp.valueOf(LocalDateTime.now());

五、時間反解析

給你一個陌生的字符串,你可以按照你需要的格式把時間給反解出來

零零散散舉了這么些例子,我想 LocalDateTime怎么地也不輸 Date吧!

線程安全性問題!

其實上面講來講去只講了兩者在用法上的差別,這其實倒還好,并不致命,可是接下來要討論的線程安全性問題才是致命的!

其實以前我們慣用的 Date時間類是可變類,這就意味著在多線程環境下對共享 Date變量進行操作時,必須由程序員自己來保證線程安全!否則極有可能翻車。

而自 Java8開始推出的 LocalDateTime卻是線程安全的,開發人員不用再考慮并發問題,這點我們從 LocalDateTime的官方源碼中即可看出:

不說別的,就光一句:

你就沒有任何理由不用 LocalDateTime!

日期格式化的選擇

大家除了慣用 Date來表示時間之外,還有一個用于和 Date連用的 SimpleDateFormat 時間格式化類大家可能也戒不掉了!

SimpleDateFormat最主要的致命問題也是在于它本身并不線程安全,這在它的源碼注釋里已然告知過了:

那取而代之,我們現在改用什么呢?其實在前文已經用到啦,那就是了 DateTimeFormatter了,他也是線程安全的:

好了,說了這么多,如果你項目里還在使用 Date或者 SimpleDateFormat的話,答應我,二話別說,趕快全部偷偷去改掉,快!速度!跑步前進!

總結

以上是生活随笔為你收集整理的【Java】什么?你项目还在用Date表示时间?!日期类LocalDateTime的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。