除了String這個類在日常的項目中比較常用之外,有關(guān)時間和日期的操作也是經(jīng)常遇到的,本篇就講詳細(xì)介紹下Java API中對時間和日期的支持。其實在Java 8之前時間日期的API并不是很好用,以至于人們在項目中大多使用的是一個第三方庫 Joda-Time,當(dāng)然Java 8 吸收了該庫的大部分優(yōu)點(diǎn),改進(jìn)了相關(guān)API,現(xiàn)在的時間日期處理接口相對以前來說是好用很多,本篇也將學(xué)習(xí)下這個優(yōu)秀的第三方庫。下面是本篇主要涉及內(nèi)容:
古老的Date類
處理年月日的年歷類Calendar
格式化字符串和日期對象的DateFormat格式轉(zhuǎn)換類
好用的SimpleDateFormat實現(xiàn)類
Joda-Time庫
一、古老的Date類
Date這個類自jdk1.0開始就被設(shè)計出來, 從它的源代碼中我們也是可以看出來,Date類曾經(jīng)扮演過很重要的角色,jdk早期的版本中有關(guān)日期和時間的操作幾乎都是由Date類完成的,下面我們一起看看它的源碼:
private transient long fastTime;
首先Date中有封裝一個long類型的變量,這個變量是整個時間日期操作的對象,也就是我們使用該變量代表時間和日期。下面說明它是如何表示時間和日期的。所有計算機(jī)中的時間都是用一個整數(shù)表示的,該整數(shù)的值代表的是距離格林尼治標(biāo)準(zhǔn)時間(1970年1月1日0時0分0秒)的毫秒數(shù),也就是說fastTime值為1000的時候代表時間為1970年1月1日0時0分1秒。至于為什么是這個時間,由于種種歷史原因大家也可以去了解下,此處不再贅述。
由于該類中大部分方法都被注解了@Deprecated,已經(jīng)不再推薦使用了,所以接下來我們主要還是看看其中還保留著的方法。只剩下兩個構(gòu)造方法:
網(wǎng)友評論