|
計算機是有系統(tǒng)時間的,那這個時間是如何來的呢?或者說如何獲取和修改時間? 這個問題在Java里面,就牽扯到了三個類: 一、Date類Data:翻譯成中文是“日期”的意思。 在Java里面Data類表示特定的瞬間,精確到毫秒。 ①創(chuàng)建data對象,不初始化即表示為當前系統(tǒng)時間。 ②直接打印就是當前的系統(tǒng)時間。 ③getTime()得到的是當前時間的毫秒值(注意是毫秒值,1000毫秒等于1秒)。 現(xiàn)在時間換算成毫秒值就是:1588635898344,也就是說從計算機時間原點到現(xiàn)在一共過了1588635898344毫秒。 ④setTime()設定距離時間原點為1000毫秒的時間。 ⑤初始化為0毫秒即表示是時間原點。 在Java里面,時間原點是1970年1月1日0點。 那為何控制臺顯示的是8點呢? CST:China Standard Time,翻譯成中文就是:中國標準時間。中國是在東八區(qū),時間原點是在零度經(jīng)線(倫敦),也就是說倫敦0點時,中國8點。 Tue May 05 07:44:58 CST 2020這樣的時間格式,你能看懂,但是在中國本土,沒接觸過多少英文的人是看不懂的,或者說看著也非常不習慣。 2020年5月5日7時44分58秒,這才是中國人習慣的時間格式。那么現(xiàn)在問題來了,如何將時間變成中國人都能看懂的時間格式? 二、DateFormat類Date:日期;Format:格式化。很明顯,Dateformat類就是將日期格式化的類。 DateFormat是一個抽象類,沒法對象實例化,所以需要使用到它的子類SimpleDateFormat。不要看類名這么長,分開記還是蠻簡單的:Simple、Date、Format,就是三個非?;A的英文單詞。 1.format方法 ①獲取當前的系統(tǒng)時間。 ②創(chuàng)建日期格式化對象,設定想要的日期格式: "yyyy年MM月dd日 HH時mm分ss秒"
③用SimpleDateFormat的format方法,按照自己設定的格式將系統(tǒng)時間格式化,得到的返回值是字符串。 ④打印格式化后的時間也就是一個字符串:2020年05月05日 08時27分31秒。 2.parse方法 parse:解析。什么意思呢?就是說這個方法能將一個字符串解析成對應的日期。 比如說:我們輸入了一字符串:“2020-05-05”,我們自然是能看懂2020年5月5日,但是計算機需要將其轉(zhuǎn)化成日期對象,parse方法的作用就是在此。 ①日期文本:"2020-05-05"。 ②創(chuàng)建日期格式化對象,設定日期格式:格式要和字符串一一對應。 ③使用parse方法,將字符串轉(zhuǎn)化成日期對象。 小結:
三、Calendar類Calendar:日歷的意思。很顯然這也是一個日期相關的類。 Calendar和DateFormat一樣,也是一個抽象類,沒法創(chuàng)建對象實例化,我們需要使用到它的子類。 它有一個子類叫GregorianCalendar,這個英文字符不要一看覺得很復雜,用詞典查詢下會發(fā)現(xiàn)它的意思就是公歷。 在中國有農(nóng)歷和公歷之分(有的地方又叫陰歷和陽歷),我們常說的十月一號國慶節(jié),五月一號勞動節(jié),一月一號元旦節(jié),它們就是公歷。 1.get方法
②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方法,現(xiàn)在設定時間為2020年1月1日,代碼如下: ①設定年份為2020。 ②設定月份是1,注意美國的一月份是0。 ③設定日為1日。 ④其中Calendar有一個方法getTime方法能將日歷對象,轉(zhuǎn)化成Date對象。 附:Date類的getTime方法得到的是當前時間的毫秒值,兩者不要弄混了。 3.add方法 add方法有兩個參數(shù):前面的是字段,后面的是數(shù)值。 也就是說,將后面的數(shù)值加到前面對應的字段上面。 總結: |
|
|
來自: 劉小愛v > 《Java學習筆記》