<small>
日期的簡單操作:獲得日期、日期設置、日期計算
Java 中沒有一個類,可以直接完成日期操作
要想實現 Java 中的日期操作,必須有以下三個類共同搭配使用,才能實現
java.util.Date 日期類:獲得當前系統時間
java.text.simpleDateFormat日期格式轉換類,可以實現日期格式的想換轉換
java.util.Calendar 日歷類,格里高利歷實現日期設置
java.util.Date
1、通過構造獲得當前系統時間
此時間表現方式為西方時間格式
Date nowDate=new Date();
System.out.println(nowDate);//當前時間
long getTime()
返回從1970年元月1日零時零分零秒至今的毫秒值
與 System,currentTimeMillis();相同
void setTime(long times)
返回給定毫秒值對應的日期時間
用于設置給定毫秒值對應的時期時間;
long times2=100000000000000000L;
nowDate.setTime(times); 返回給 nowDate
此方法不好,可以用有參構造
Date futureDate=new Date(times2)
java.text.simpleDateFormat
由于new Date()獲得當前系統時間,為西方表示方式,對于中國人來說,不死十分友好,素有我們需要將西方表示方式轉換成中國人比較習慣的表現方式
中國人習慣的方式:
2016年10月13日 15時07分38秒
2016-10-13 15:07:38
y: 年
M: 月
d :月份中的天數
H: 24小時制
h :12小時制
m:分
s: 秒
2016年10月13日 15時07分38秒
yyyy 年 MM 月 dd 日 HH 時mm 分 ss 秒
SimpleDateFormat sdf=new SimpleDateFormat("yyyy 年 MM 月 dd 日 HH 時mm 分 ss 秒")
通過制定日期格式轉換對象將 new Date()系統時間轉換為指定日期格式的表現形式
Date date=new Date();
Date→String
String nowDate=sdf.format(date);
parse
將中方的時間轉換為西方的時間
String→Date 將字符串時間轉為 Date
此方法可能拋出異常
情形1:如果格式沒有問題,字符串時間輸入沒有問題,則不會拋出異常
情形2:如果格式有問題,或者字符串時間輸入對不上號則會拋出異常
String dateStr="2008年08月08日 20時08分08秒"
SimpleDateFormat sdf=new SimpleDateFormat("yyyy 年 MM 月 dd 日 HH 時mm 分 ss 秒")
Date parse(String dateStr);//中方字符串時間格式化,將字符串時間通過指定格式轉換為 date 類型時間
Date date=sdf2.parase(dateStr)
java.util.Calendar
創建對象,由于 Calendar 是一個抽象類,可以通過父類引用指向子類 GregorianCalendar對象方式實現實例化//不常用
Calendar cal=new GregorianCalendar()//不常用
可以通過工廠方法模式
Calendar cal2=Calendar.getInstance();
Date getTime()
從日歷中獲得當前系統時間,與 new Date()直接獲得當前系統時間等效
void setTime()
給日歷指定的日期時間
Date date2=new new SimpleDateFormat("yyyy 年 MM 月 dd 日 HH 時mm 分 ss 秒").parse("2008年08月08日20時08分08秒")
①、Date getTime()
* Calendar → Date
* 從日歷中獲得當前系統時間。
* 與new Date()直接獲得當前系統時間等效。
*/
Date date = new Date();
System.out.println("new Date:"+date);
Date dateFromCal = cal.getTime();
System.out.println("dateFromCal:"+dateFromCal);
/*
* ②、void setTime()
* Date → Calendar
* 給日歷設置指定的日期時間。
*/
Date date2 =
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
.parse("2008-08-08 20:08:08");
//將日歷設置時間為date2
cal.setTime(date2);
System.out.println("setTime之后的日歷時間:"+cal.getTime());
/*
long getTimeInMillis()
long times=cal.getTimeInMillis()
####### setTimeInMillis

####### 時間分量函數
時間分量:
YEAR 年
MONTH 月
DATE 日
DAY_OF_MONTH
HOUR 時(12小時制)
HOUR_OF_DAY 時(24小時)
MINUTE 分
SECOND 秒
DAY_OF_WEEK(周日為一周的開始)
calendar cal=Calendar.getInstance();
System.out.println(年:cal.get(calendar.YEAR));//2016
System.out.println(年:cal.get(calendar.MONTH));//9表示10月,0 表示1
######cal.set(Calendar.YEAR,2017)
其他設置類似
設置日歷為日歷時間所在周的周幾
-
void add(時間分量,值)
*/
cal.add(Calendar.DATE, -3);//三天前
System.out.println("三天前的時間:"+cal.getTime());cal.add(Calendar.MINUTE, 10);//10分鐘后 System.out.println("10分鐘的時間:"+cal.getTime()); cal.add(Calendar.MONTH, 4);//4個月后 System.out.println("4個月后的時間:"+cal.getTime());
######時間分量的運算
時間計算:如明天此時10分鐘后等我,四個月后結束
###### void add(時間分量,值)
cal.add(Calendar.DATE,-3)