除了String這個(gè)類在日常的項(xiàng)目中比較常用之外,有關(guān)時(shí)間和日期的操作也是經(jīng)常遇到的,本篇就講詳細(xì)介紹下Java API中對時(shí)間和日期的支持。其實(shí)在Java 8之前時(shí)間日期的API并不是很好用,以至于人們在項(xiàng)目中大多使用的是一個(gè)第三方庫 Joda-Time,當(dāng)然Java 8 吸收了該庫的大部分優(yōu)點(diǎn),改進(jìn)了相關(guān)API,現(xiàn)在的時(shí)間日期處理接口相對以前來說是好用很多,本篇也將學(xué)習(xí)下這個(gè)優(yōu)秀的第三方庫。下面是本篇主要涉及內(nèi)容:
古老的Date類
處理年月日的年歷類Calendar
格式化字符串和日期對象的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í)間日期操作的對象,也就是我們使用該變量代表時(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)造方法:
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26
