計算機是有系統時間的,那這個時間是如何來的呢?或者說如何獲取和修改時間?
這個問題在Java裡面,就牽扯到了三個類:
一、Date類
Data:翻譯成中文是「日期」的意思。
在Java裡面Data類表示特定的瞬間,精確到毫秒。
①創建data對象,不初始化即表示為當前系統時間。
②直接列印就是當前的系統時間。
③getTime()得到的是當前時間的毫秒值(注意是毫秒值,1000毫秒等於1秒)。
現在時間換算成毫秒值就是:1588635898344,也就是說從計算機時間原點到現在一共過了1588635898344毫秒。
④setTime()設定距離時間原點為1000毫秒的時間。
⑤初始化為0毫秒即表示是時間原點。
在Java裡面,時間原點是1970年1月1日0點。
那為何控制臺顯示的是8點呢?
CST:China Standard Time,翻譯成中文就是:中國標準時間。中國是在東八區,時間原點是在零度經線(倫敦),也就是說倫敦0點時,中國8點。
Tue May 05 07:44:58 CST 2020這樣的時間格式,你能看懂,但是在中國本土,沒接觸過多少英文的人是看不懂的,或者說看著也非常不習慣。
2020年5月5日7時44分58秒,這才是中國人習慣的時間格式。那麼現在問題來了,如何將時間變成中國人都能看懂的時間格式?
二、DateFormat類
Date:日期;Format:格式化。很明顯,Dateformat類就是將日期格式化的類。
DateFormat是一個抽象類,沒法對象實例化,所以需要使用到它的子類SimpleDateFormat。不要看類名這麼長,分開記還是蠻簡單的:Simple、Date、Format,就是三個非常基礎的英文單詞。
1.format方法
①獲取當前的系統時間。
②創建日期格式化對象,設定想要的日期格式:
"yyyy年MM月dd日 HH時mm分ss秒"
y:小寫y,year的簡寫,表示年。M:大寫M,Month的簡寫,表示月。d:小寫d,day的簡寫,表示天。H:大寫H,hour的簡寫,表示小時。m:小寫m,minute的簡寫,表示分鐘。s:小寫s,second的簡寫,表示秒。③用SimpleDateFormat的format方法,按照自己設定的格式將系統時間格式化,得到的返回值是字符串。
④列印格式化後的時間也就是一個字符串:2020年05月05日 08時27分31秒。
2.parse方法
parse:解析。什麼意思呢?就是說這個方法能將一個字符串解析成對應的日期。
比如說:我們輸入了一字符串:「2020-05-05」,我們自然是能看懂2020年5月5日,但是計算機需要將其轉化成日期對象,parse方法的作用就是在此。
①日期文本:"2020-05-05"。
②創建日期格式化對象,設定日期格式:格式要和字符串一一對應。
③使用parse方法,將字符串轉化成日期對象。
小結:
使用SimpleDateFormat類可以格式化日期。使用模式字母可以設定日期格式。format方法:將日期對象轉化成字符串。parse方法:將字符串轉化成日期對象。三、Calendar類
Calendar:日曆的意思。很顯然這也是一個日期相關的類。
Calendar和DateFormat一樣,也是一個抽象類,沒法創建對象實例化,我們需要使用到它的子類。
它有一個子類叫GregorianCalendar,這個英文字符不要一看覺得很複雜,用詞典查詢下會發現它的意思就是公曆。
在中國有農曆和公曆之分(有的地方又叫陰曆和陽曆),我們常說的十月一號國慶節,五月一號勞動節,一月一號元旦節,它們就是公曆。
1.get方法
①getInstance():根據系統信息(時區、語言)獲取相應的日曆。比如中國的系統:就是公曆;日本的系統:就是日本的日曆。
getInstance是靜態方法,可以直接用類名調用。
②get(Calendar.YEAR):獲取日期中的年份。
③get(Calendar.MONTH):獲取日期中的月份(注意:美國那邊的月份是從0到11月的,所以我們要加上1).
④get(Calendar.DAY_OF_MONTH):獲取日期中的日。
⑤字符串拼接列印。
其中還有一個欄位:DAY_OF_WEEK。也就是常說的星期幾,但是要注意,美國那邊一個星期的第一天是星期日。
也就是說星期日時:DAY_OF_WEEK=1;星期一時:DAY_OF_WEEK=2。
2.set方法和getTime方法
有get方法,自然也會有set方法,現在設定時間為2020年1月1日,代碼如下:
①設定年份為2020。
②設定月份是1,注意美國的一月份是0。
③設定日為1日。
④其中Calendar有一個方法getTime方法能將日曆對象,轉化成Date對象。
附:Date類的getTime方法得到的是當前時間的毫秒值,兩者不要弄混了。
3.add方法
add方法有兩個參數:前面的是欄位,後面的是數值。
也就是說,將後面的數值加到前面對應的欄位上面。
總結: