除了String這個(gè)類在日常的項(xiàng)目中比較常用之外,有關(guān)時(shí)間和日期的操作也是經(jīng)常遇到的,本篇就講詳細(xì)介紹下Java API中對(duì)時(shí)間和日期的支持。其實(shí)在Java 8之前時(shí)間日期的API并不是很好用,以至于人們?cè)陧?xiàng)目中大多使用的是一個(gè)第三方庫 Joda-Time,當(dāng)然Java 8 吸收了該庫的大部分優(yōu)點(diǎn),改進(jìn)了相關(guān)API,現(xiàn)在的時(shí)間日期處理接口相對(duì)以前來說是好用很多,本篇也將學(xué)習(xí)下這個(gè)優(yōu)秀的第三方庫。下面是本篇主要涉及內(nèi)容:

  • 古老的Date類

  • 處理年月日的年歷類Calendar

  • 格式化字符串和日期對(duì)象的DateFormat格式轉(zhuǎn)換類

  • 好用的SimpleDateFormat實(shí)現(xiàn)類

  • Joda-Time庫

一、古老的Date類
     Date這個(gè)類自jdk1.0開始就被設(shè)計(jì)出來, 從它的源代碼中我們也是可以看出來,Date類曾經(jīng)扮演過很重要的角色,jdk早期的版本中有關(guān)日期和時(shí)間的操作幾乎都是由Date類完成的,下面我們一起看看它的源碼:

private transient long fastTime;

首先Date中有封裝一個(gè)long類型的變量,這個(gè)變量是整個(gè)時(shí)間日期操作的對(duì)象,也就是我們使用該變量代表時(shí)間和日期。下面說明它是如何表示時(shí)間和日期的。所有計(jì)算機(jī)中的時(shí)間都是用一個(gè)整數(shù)表示的,該整數(shù)的值代表的是距離格林尼治標(biāo)準(zhǔn)時(shí)間(1970年1月1日0時(shí)0分0秒)的毫秒數(shù),也就是說fastTime值為1000的時(shí)候代表時(shí)間為1970年1月1日0時(shí)0分1秒。至于為什么是這個(gè)時(shí)間,由于種種歷史原因大家也可以去了解下,此處不再贅述。

由于該類中大部分方法都被注解了@Deprecated,已經(jīng)不再推薦使用了,所以接下來我們主要還是看看其中還保留著的方法。只剩下兩個(gè)構(gòu)造方法:

        		

網(wǎng)友評(píng)論