這篇介紹的很精簡,而且很多都是腦補,不太參考正規的官方文件
這幾個類別應該還有其他應用的地方,有錯請指正
先介紹 Date
(是java.util.Date 不是 java.sql.Date,但目測功能應該大同小異,還沒用過不確定
這個類別雖然英文字典說叫做"日期",但其實裡面也記錄著比日還小的時、分、秒
所以Date這個類別的意義可以理解為
時間上的某一瞬間
所以理所當然就包含著這個瞬間的年、月、日、時、分、秒、毫秒這些時間資訊
常用方法 :
1. new Date() : 創一個Date實例,其內部時間資訊為創建的瞬間
比如說執行到new Date()的時候是2000/12/1 23:59:59 0ms 那這個Date實例就記錄這個瞬間
2. new Date(Long s) : 距離 1970/1/1 0點0分0秒 s個毫秒數的瞬間
比如說new Date(1000),那這個Date實例就記錄著1970/1/1 0點0分1秒
3.Date().toLocaleString() : 直接用預設的樣式輸出該Date實例的時間資訊
Calendar
我覺得這個類別的意義跟Date差不多
都是用來代表時間上的一個瞬間
不過在運算上比Date方便許多
可以針對各個時間欄位(年月日時分秒星期幾等等)做加減,而且在邊際處理(比如某月最後一號加1)上處理得很完整
但相對的,缺點就是比較耗資源
所以可以得出一個結論:
如果只是需要一個表示時間的東西或是比較時間先後,用Date() 甚至 System.currentTimeMillis() 就好,這兩種方式所耗的資源差不多少
如果要做時間上的計算,用Calendar
不過除了運算方便不知道還有沒有比Date好用的地方,還沒深入去看
常用方法
1.Calendar.getInstance() : 取得一個Calendar實例,時間資訊為創建的瞬間
(Calendar沒有建構子,就用這個靜態方法創建
2.Calendar.set(int field,int value) : 更改指定時間資訊的值
比如說 set(Calendar.MINUTE,2)就把分設為2
3.Calendar.add(int field,int value): 增加指定時間資訊的值,要減少的話value用負的
4.Calendar.get(int field)
5.Calendar.getTime() : Calendar轉成Date
6.Calendar.setTime(Date) : Date轉成Calendar
SimpleDateFormat
用來將日期以特定的樣式輸出
比如一個Date裡面時間是 2015年7月20
不同的樣式輸出可以是
2015.7.20
2015/7/20
20/7/2015
等等
想怎麼安排都可以
常用方法:
1.new SimpleDateFormat(String pattern)
SimpleDateFormat的一個建構子
參數pattern是用來設定樣式的字串
樣式的代表字母可參照官方文件,比如 :
"西元 y.M.d E a h:m:s"
y代表年 M代表月 d代表日 E代表星期幾 a代表上/下午 h代表小時 m代表分 s代表秒
所以依照上面的樣式字串
到最後會輸出
西元 2016.3.8 星期日 下午 8:28:39 (←現在時間
2.SimpleDateFormat.format(Date)
將Date物件的時間資料以此SimpleDateFormat指定的樣式進行輸出
比如
new SimpleDateFormat("西元 y.M.d E a h:m:s").format(new Date());
就是以上述樣式輸出現在時間
3.SimpleDateFormat.getInstance()預設的樣式
.getDateInstance()預設的樣式,只有日期
.getDateTimeInstance()預設的樣式,含日期和時間
Calendar
我覺得這個類別的意義跟Date差不多
都是用來代表時間上的一個瞬間
不過在運算上比Date方便許多
可以針對各個時間欄位(年月日時分秒星期幾等等)做加減,而且在邊際處理(比如某月最後一號加1)上處理得很完整
但相對的,缺點就是比較耗資源
所以可以得出一個結論:
如果只是需要一個表示時間的東西或是比較時間先後,用Date() 甚至 System.currentTimeMillis() 就好,這兩種方式所耗的資源差不多少
如果要做時間上的計算,用Calendar
不過除了運算方便不知道還有沒有比Date好用的地方,還沒深入去看
常用方法
1.Calendar.getInstance() : 取得一個Calendar實例,時間資訊為創建的瞬間
(Calendar沒有建構子,就用這個靜態方法創建
2.Calendar.set(int field,int value) : 更改指定時間資訊的值
比如說 set(Calendar.MINUTE,2)就把分設為2
3.Calendar.add(int field,int value): 增加指定時間資訊的值,要減少的話value用負的
4.Calendar.get(int field)
5.Calendar.getTime() : Calendar轉成Date
6.Calendar.setTime(Date) : Date轉成Calendar
SimpleDateFormat
用來將日期以特定的樣式輸出
比如一個Date裡面時間是 2015年7月20
不同的樣式輸出可以是
2015.7.20
2015/7/20
20/7/2015
等等
想怎麼安排都可以
常用方法:
1.new SimpleDateFormat(String pattern)
SimpleDateFormat的一個建構子
參數pattern是用來設定樣式的字串
樣式的代表字母可參照官方文件,比如 :
"西元 y.M.d E a h:m:s"
y代表年 M代表月 d代表日 E代表星期幾 a代表上/下午 h代表小時 m代表分 s代表秒
所以依照上面的樣式字串
到最後會輸出
西元 2016.3.8 星期日 下午 8:28:39 (←現在時間
2.SimpleDateFormat.format(Date)
將Date物件的時間資料以此SimpleDateFormat指定的樣式進行輸出
比如
new SimpleDateFormat("西元 y.M.d E a h:m:s").format(new Date());
就是以上述樣式輸出現在時間
3.SimpleDateFormat.getInstance()預設的樣式
.getDateInstance()預設的樣式,只有日期
.getDateTimeInstance()預設的樣式,含日期和時間
沒有留言:
張貼留言