四、java常見日期函數

學習日期函數前要先引入兩個包

java.util.Date

java.text.SimpleDateFormat

 

一、  Calendar和Date的轉化 

(1)Calendar轉Date 
Calendar cal=Calendar.getInstance();   //創建Cal
Date date=cal.getTime();    //
系統時間賦值爲從Cal獲取的值


(2)Date轉Calendar 
Date date=new Date();      //date就是當前系統時間
Calendar cal=Calendar.getInstance();    //創建Cal

cal.setTime(date);        //Cal寫入當前系統時間

 

二、 設置輸出日期時間的格式

Date date=newDate(); //date就是當前系統時間
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");  

//創建一個新日期格式df

System.out.println(df.format(date));//以新的日期格式輸出當前時間

 

三、 add()方法  與  roll()方法 

(1)add()方法 
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");         //設置格式df
Calendarcal=Calendar.getInstance();                             //創建cal
cal.set(Calendar.YEAR, 2017);                                      //設置爲2006
cal.set(Calendar.MONTH, 0);                                       //設置爲1(下標0)
cal.set(Calendar.DAY_OF_MONTH, 20);                     //設爲20


cal.add(Calendar.DATE, 12);                        //add()[原日期上更改]
Date date=cal.getTime();                             //cal時間賦值到date
System.out.println(df.format(date));             //df格式輸出date


cal.add(Calendar.DATE, -12);                       //add()[原日期上更改]
date=cal.getTime();                                     // cal的新時間賦值到date
System.out.println(df.format(date));               //df格式輸出date


結果輸出: 
2017-02-01
2017-01-20 

add()方法在日曆內循環,可以跨月份移時間 (常用)

 

 

(2)roll方法 

 

SimpleDateFormatdf=new SimpleDateFormat("yyyy-MM-dd");    //嘗試着自己理解並註釋吧
Calendarcal=Calendar.getInstance(); 
cal.set(Calendar.YEAR, 2017); 
cal.set(Calendar.MONTH, 0); 
cal.set(Calendar.DAY_OF_MONTH, 20); 


cal.roll(Calendar.DATE, 12); 
date=cal.getTime(); 
System.out.println(df.format(date)); 


cal.roll(Calendar.DATE, -12); 
date=cal.getTime(); 
System.out.println(df.format(date)); 


輸出: 
2017-01-01 
2017-01-20 

roll()方法在月份內循環,不能跨月份移時間(不常用)

 

四、 常用函數

獲取系統當前時間:

public static String getSystemTime(){

Date date=new Date();

SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-ddHH:mm:ss");

//SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss G E D F w W a EF");

//(這種在格式後面加定義了星期等)

return df.format(date);

}

//當前時間 (calendar)
   Calendar cal = Calendar.getInstance(); 
   SimpleDateFormat  nowtime  =  new SimpleDateFormat("yyyy-MM-ddHH:mm:ss") ;  
   String myDateTime = nowtime.format(cal.getTime()); 

//1年前日期 (減號爲前,加號爲後)

   Date myDate=new Date(); 

   long   oneyearago   =   (myDate.getTime()/1000)- 60*60*24*365;     //秒*分*時*天
   myDate.setTime(oneyearago *1000); 
   String oneyearagoDate = nowtime.format(myDate); 

//1個月前日期

   Date myDate=new Date(); 

   long   onemonthago   =   (myDate.getTime()/1000)-60*60*24*30(/31);     //秒*分*時*天
   myDate.setTime(onemonthago *1000); 
   String onemonthagoDate =nowtime.format(myDate); 

//1天前日期

   Date myDate=new Date(); 

   long   onedayago   =   (myDate.getTime()/1000)- 60*60*24;     //秒*分*時
   myDate.setTime(onedayago *1000); 
   String oneweekagoDate=nowtime.format(myDate);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章