Calendar,Date,SimpleDateFormat的互相轉化
android中的時間類Date是用來對時間進行處理的一個常用類,早期,可以通過設定Date date=new Date();中的參數對時間進行設定和修改。後來Date這個類更多的時候是辨別一個時間的機關存在,不再對時間進行操作處理了,而替代它的更強大的一個類Calendar提供了更多的對于時間進行修改和操作的方法。現在我們就來看看他們之間的轉化和調用。
首先我們看一下擷取現在時間的方法,很簡單Date date=new Date();
輸出結果:Fri Aug 19 09:39:27 CST 2016
格式是計算機預設的時間格式,可以精确到毫秒值,但這裡沒有顯示,通過Date的getTime();方法,可以擷取當下距離1970年1月1日零時的毫秒值
輸出結果:date.getTime()=1471570767065
通過SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd天 HH時mm分ss秒 E");具體的時間具體到什麼情況更具需要而定,例如可以隻要時分秒,也可以隻要月和日等等,更是類型也沒有具體的限定,隻需要通過sdf.format(date);就可以完成,傳回值為String類型
輸出結果:2016年08月19天 09時39分27秒星期五
那麼在來看看作為輸出結構的String類型如何和Date進行互相轉換呢,很簡單,可以怎麼來的咱就怎麼回去,同樣通過SimpleDateFormat的方法sdf.parse(String);可以将和sdf規定格式相同的String時間轉換為Date類型。
好的,現在我們來看一下作為Date的替代者的Calendar,建立執行個體的方法:Calendar ca=Calendar.getInstance();
通過Calendar的getTime();方法,我們可以獲得一個Date的傳回值作為時間顯示。反之我們可以将自己的Date資料通過setTime();方法轉換為Calendar類型,然後通過Calendar類中的方法對時間進行具體的操作。
ca.set(int field, int value) - 是用來設定"年/月/日/小時/分鐘/秒/微秒"等值,參數可以是一個,也可以是 多個。
例如:
set(int year, int month, int day, int hour, int minute, int second) ;
Calendar.Year Calendar.Month Calendar.Day of Month....
需要注意的是:
Calendar 的 month 從 0 開始,也就是全年 12 個月由 0 ~ 11 進行表示。
而 Calendar.DAY_OF_WEEK 定義和值如下:
Calendar.SUNDAY = 1
Calendar.MONDAY = 2
Calendar.TUESDAY = 3
Calendar.WEDNESDAY = 4
Calendar.THURSDAY = 5
Calendar.FRIDAY = 6
Calendar.SATURDAY = 7