java8中LocalDate、LocalTime、LocalDateTime介紹

很久以前java8中就推出了新的Time API,旨在解決舊版Date和Calendar的缺陷。講道理真的挺好用的,不過由其他工具對新版time的兼容并不夠完善,導致現在使用還不夠普及。大家都還在用老的Date類,苦?的封裝時間工具函數,感?真的沒意思。

(一)舊版Time/Date類的缺陷

(1)線程不安全:

首先舊版本的時間類是線程不安全的,在多線程操作同一個時間類實例時,會拋出異常。而新版本的時間工具全部都是線程安全的。

(2)設計混亂、可讀性不好:

舊版本的java.util.Date,雖然名字叫Date,?是其實既包含日期也包含時間。同時在mysql中也有個java.sql.Date,這兩個Date名字一摸一樣,但是mysql的Date是不包含時間的。另外對日期格式化的工具卻在java.text包中。包比較混亂,對我們程序鹽多有不便。

(3)沒有良好的時區方法支持:

新版本的時間類提供了非常良好的時區API,舊版本需要使用java.util.Calendar?and?java.util.TimeZone?等類。

(二)新版日期時間API的使用

1.LocalDate的使用:

(1)輕松的實現日期和周間的轉換

// 獲取2016年6月12號是周幾
LocalDate.parse("2016-06-12").getDayOfWeek();

(2)輕松的判斷是不是閏年

boolean leapYear = LocalDate.now().isLeapYear();

(3)輕松的獲取每天的起始時間和結束時間

LocalDateTime beginningOfDay = LocalDate.parse("2016-06-12").atStartOfDay();

2.LocalTime的使用:

(1)輕松的獲取時間最大值

// 23:59:59.99
LocalTime maxTime = LocalTime.MAX

(2)輕松的進行時間增減

(1)輕松的獲取巴黎的時區

ZonedDateTime zonedDateTime = ZonedDateTime.of(localDateTime, zoneId);

3.LocalDateTime的使用:

LocalDateTime包含日期和時間,是之前兩者的合集,這里就不詳細介紹了。

(三)新版時區API的使用

(1)輕松的獲取巴黎的時區

ZoneId zoneId = ZoneId.of("Europe/Paris");

(2)將本地時區時間轉為其他時區時間:

ZonedDateTime zonedDateTime = ZonedDateTime.of(localDateTime, zoneId);

(四)獲取日期時間間隔

// 日期間隔天數
int five = Period.between(finalDate, initialDate).getDays();
// 時間間隔秒數
int thirty = Duration.between(finalTime, initialTime).getSeconds();

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/451029.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/451029.shtml
英文地址,請注明出處:http://en.pswp.cn/news/451029.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

狗窩里的小日子- 5 ...

來,把平時作的菜菜整理下: 51. 52. 53. 54. 55. 56. 57. 58. 59. 60.

Linux(RadHat)基礎學習—FTP服務

RedHat下的ftp服務 1.ftp服務的啟動 1.編輯文件:vim /etc/sysconfig/selinux第6行selinuxdisabled保存退出。重啟主機。 2.安裝vsftpd yum install vsftpd -y 安裝完成: 開啟ftp服務: systmctl start vsftpd systemctl enable vsftpd 3.防火墻…

C++經典面試題匯總

1. 下面代碼輸出什么&#xff1f;為什么&#xff1f;&#xff08;初始化列表&#xff09; #include<iostream>using namespace std;class Test {int m_i;int m_j; public:Test(int v): m_j(v), m_i(m_j){}int getI(){return m_i;}int getJ(){return m_j;} };int main() {…

手機貼膜利潤超百倍 消費者為無用功能高價買單

摘要&#xff1a;市場研究機構IDC的最新報告預計&#xff0c;2013年智能手機出貨量將首次超過功能手機&#xff0c;國家工信部的數據顯示&#xff0c;截至2011年底&#xff0c;我國智能手機用戶已超過1.9億。記者調查發現&#xff0c;在從事手機貼膜的攤點上&#xff0c;攤主多…

java內存區域及靜態常量池、運行時常量池介紹

java內存區域介紹 我們先來介紹下虛擬機運行時數據區的結構&#xff1a; 我們項目中的每一個線程在運行時&#xff0c;都會有擁有自己獨立的棧數據和程序計數器。程序計數器可以看作字節碼命令的指示器&#xff0c;記錄了下個需要執行的字節碼指令&#xff0c;棧數據主要分為本…

狗窩里的小日子- 6 ...

來&#xff0c;把平時作的菜菜整理下&#xff1a; 61. 62. 63. 64. 65. 66. 67. 68. 69. 70.

數據庫常見面試題總結

參考如下: 數據庫常見面試題(開發者篇) 數據庫優化 SQL數據庫面試題及答案 常見面試題整理--數據庫篇轉載于:https://www.cnblogs.com/threetop/p/9425172.html

京東商城上市帶來的利與益

有人說2012是大選年&#xff0c;而對于互聯網行業來說&#xff0c;不如說是上市年。繼全球第一的社交網站Facebook上市之后&#xff0c;中國最大的電子商城京東商城也要緊鑼密鼓的進行IPO了。筆者不分析京東IPO對電商行業的影響、不分析京東后IPO那些二三線電商怎么著急、不談電…

狗窩里的小日子- 7 ...

來&#xff0c;把平時作的菜菜整理下&#xff1a; 71. 72. 73. 74. 75. 76. 77. 78. 79. 80.

[轉]CNN目標檢測(一):Faster RCNN詳解

https://blog.csdn.net/a8039974/article/details/77592389 Faster RCNN github : https://github.com/rbgirshick/py-faster-rcnn Faster RCNN paper : https://arxiv.org/abs/1506.01497 Bound box regression詳解 : http://download.csdn.net/download/zy1034092330/9940097…

Class.forName和ClassLoader

&#xff08;1&#xff09;ClassLoader是用來加載類數據的&#xff08;加載的方式由具體的加載器決定&#xff09;。類加載器根據類的全限定名加載類的二進制字節流&#xff0c;然后將字節流轉換成jvm方法區中的運行時數據結構&#xff0c;并在方法區生成一個代表該類的Class對…

狗窩里的小日子- 8 ...

來&#xff0c;把平時作的菜菜整理下&#xff1a; 81. 82. 83. 84. 85. 86. 87. 88.

PHPSTORM破解版激活方式方法

方法一. 通過Licence Server 激活PHPStorm&#xff08;快速&#xff09;方法原理是通過搭建服務器激活,不過網上有許多搭建好的。http://idea.goxz.gqhttp://v2mc.net:1017http://idea.imsxm.com&#xff08;2016版&#xff09;http://idea.ibdyr.com注&#xff1a;不一定長期有…

BZOJ1911 特別行動隊

目錄 BZOJ1911 特別行動隊題解&#xff43;&#xff4f;&#xff44;&#xff45;BZOJ1911 特別行動隊 題目傳送門 題解 典型的斜率優化\(Dp\)。首先如果我們記\(sum[i]\)表示前\(i\)個士兵的戰斗力之和&#xff0c;那么我們比較容易的可以得出\(O(n^2)\)的\(Dp\)&#xff1a;\…

硅谷創業者中被遮蔽的“中國現象”

摘要&#xff1a;他們關心互聯網和移動&#xff0c;但更關心公共設施的信息化、環境污染和氣候變暖、清潔能源的利用&#xff0c;以及農業和食物的改良。但至少目前看上去&#xff0c;他們贏得的來自硅谷的學術機構、風險投資界的認可與尊敬&#xff0c;似乎要更多。 他們關心互…

【模式識別與機器學習】——3.9勢函數法:一種確定性的非線性分類方法

目的 用勢函數的概念來確定判別函數和劃分類別界面。 基本思想 假設要劃分屬于兩種類別ω1和ω2的模式樣本&#xff0c;這些樣本可看成是分布在n維模式空間中的點xk。 把屬于ω1的點比擬為某種能源點&#xff0c;在點上&#xff0c;電位達到峰值。 隨著與該點距離的增大&a…

超詳細 - SVN下載安裝及使用教程

SVN簡介&#xff1a; 為什么要使用SVN&#xff1f; 程序員在編寫程序的過程中&#xff0c;每個程序員都會生成很多不同的版本&#xff0c;這就需要程序員有效的管理代碼&#xff0c;在需要的時候可以迅速&#xff0c;準確取出相應的版本。 Subversion是什么&#xff1f; 它是一…

TW實習日記:第16天

前端的樣式bug實在是太太太莫名其妙了&#xff0c;尤其是封裝好的組件&#xff0c;一層套一層的&#xff0c;根本不知道是哪一層出了問題...除了改bug就是做新功能&#xff0c;真想吐槽一下這個項目的留言板&#xff0c;根本沒人會用吧...這功能實在是太老舊了... 感覺每一天都…

重載與重寫(overload and override)

在java編程中經常會遇到重載和重寫&#xff0c;剛接觸java的時候對這對概念比較懵比&#xff0c;也不能理解其中的區別&#xff0c;后來在逐漸的學習中更加深刻的理解了其中的原理。哎&#xff0c;說來還是基礎知識學的不扎實&#xff0c;這些都是大學期間偷懶欠下的帳。 &…

洛谷P4114 Qtree1(樹鏈剖分+線段樹)

傳送門 LCT秒天秒地用什么樹剖 這題可以算是樹剖的比較裸的題目了 把每一條邊的權值下放到他兩邊的點中深度較深的那個 然后直接用樹剖線段樹帶進去亂搞就可以了 1 //minamoto2 #include<bits/stdc.h>3 using namespace std;4 template<class T>inline bool cmax(T…