日期操作

<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

![時間轉換](http://upload-images.jianshu.io/upload_images/66256-42884bcfddcf17e7.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


####### 時間分量函數
時間分量:
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)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • java.util.Clendar 日歷類,該類是一個抽象類,封裝了針對日期進行操作的一些方法,比如時間計算等。 ...
    隴上伯約閱讀 598評論 0 2
  • 之前一直強調java類的概念,java類與數據庫表的映射,數據表的日期字段一直沒有映射。 今天研究一下Java.u...
    起風了dzj閱讀 191評論 0 0
  • /*得到當前系統日期 Date類*/ Date date =new Date();//實例化Date類對象 dat...
    子玲2017閱讀 292評論 0 0
  • import java.text.SimpleDateFormat;import java.util.Calend...
    霙愔閱讀 762評論 0 2
  • 突然感知勢必會來的傷害 我很慶幸你能淡定的走開 不愿你一起承受結局的壞 不愿接受撫平的心魔作怪 無需重復那些無助的...
    墨度閱讀 196評論 0 13