java學習:日期的運算


java.util.Date下的很多(構造)方法,已經被標識為"過時"方法,官方推薦使用Calendar類來處理日期的運算,下面是示例:

 
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
 
public class HelloWorld {
    
    public static void main(String[] args) {
    	
    	//指定時間輸出格式
    	SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
       
        Date dt = new Date();
        System.out.println("當前時間:" + sdf.format(dt));
        
        Calendar rightNow = Calendar.getInstance();
        rightNow.setTime(dt);        
        
        rightNow.add(Calendar.YEAR,-1);//當時日期減1年
        System.out.println("減1年:" + sdf.format(rightNow.getTime()));
        
        rightNow.add(Calendar.MONTH,3);//(在剛才的結果上)再加3個月
        System.out.println("再加3個月:" + sdf.format(rightNow.getTime()));
        
        rightNow.add(Calendar.DAY_OF_YEAR,10);//(在剛才的結果上)再加10天        
        System.out.println("再加10天:" + sdf.format(rightNow.getTime()));
        

    }
}

  輸出結果:

當前時間:2013-02-21 09:40:49
減1年:2012-02-21 09:40:49
再加3個月:2012-05-21 09:40:49
再加10天:2012-05-31 09:40:49

----------------------------------------------

如果要將某個日期中的 各部分(比如:年、月、日、星期...) 拆解出來,也很容易:

 1         Date dt = new Date();        
 2         Calendar calendar = Calendar.getInstance();
 3         calendar.setTime(dt);     
 4            System.out.println("當前日期:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(dt));//當前日期:2013-02-28 16:22:37
 5         System.out.println("年:" + calendar.get(Calendar.YEAR));//年:2013
 6         System.out.println("月:" + (calendar.get(Calendar.MONTH)+1));//月:2 -注:月份是從0開始的
 7         System.out.println("日:" + calendar.get(Calendar.DATE));//日:28
 8         System.out.println("時(12小時制):" + calendar.get(Calendar.HOUR));//時:4(12小時制)
 9         System.out.println("時(24小時制):" + calendar.get(Calendar.HOUR_OF_DAY));//時:16(24小時制)
10         System.out.println("分:" + calendar.get(Calendar.MINUTE));//分:30
11         System.out.println("秒:" + calendar.get(Calendar.SECOND));//秒:19
12         System.out.println("本月第" + calendar.get(Calendar.WEEK_OF_MONTH) + "周");//本月第5周
13         System.out.println("本年第" + calendar.get(Calendar.WEEK_OF_YEAR) + "周");//本年第9周    

 

附:各種時間format掩碼格式可參考 https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM