最新Java中Date類型詳解

1、Date類型的初始化

一、 Date(int year, int month, int date); 直接寫入年份是得不到正確的結果的。 由於java中Date是從1900年開始算的,因此前面的第一個參數只要填入從1900年後過了多少年就是你想要獲得的年份。 月須要減1,日能夠直接插入。 這種方法用的比較少,經常使用的是第二種方法。java

二、 這種方法是將一個符合特定格式,好比yyyy-MM-dd,的字符串轉化成爲Date類型的數據。 首先,定義一個Date類型的對象 Date date = null; 再定義一個String類型的符合格式的字符串 String dateStr = "2010-9-10"; 把這個字符串進行拆分 String[ ]  dateDivide = dateStr.split("-"); 把年月日分別取出,賦給Calendar,用 Calendar的getTime();取得日期再賦給date。ide

例如:函數

if(dateDivide.length==3){  
   int year = Integer.parseInt(dateDivide [0].trim());//去掉空格  
     int month = Integer.parseInt(dateDivide [1].trim());  
     int day = Integer.parseInt(dateDivide [2].trim());  
     Calendar c = Calendar.getInstance();//獲取一個日曆實例  
     c.set(year, month-1, day);//設定日曆的日期  
     date = c.getTime();  
} 

2、Date類型的比較

Date a;
Date b;
假設如今你已經實例化了a和b
a.after(b)返回一個boolean,若是a的時間在b以後(不包括等於)返回true
b.before(a)返回一個boolean,若是b的時間在a以前(不包括等於)返回true
a.equals(b)返回一個boolean,若是a的時間和b相等返回truespa

3、Date類型經常使用的操做函數

        // 1.計算某一月份的最大天數
        Calendar time = Calendar.getInstance();
        time.clear();
        time.set(Calendar.YEAR, year); // year 爲 int
        time.set(Calendar.MONTH, i - 1);// 注意,Calendar對象默認一月爲0
        int day = time.getActualMaximum(Calendar.DAY_OF_MONTH);// 本月份的天數
        // 注:在使用set方法以前,必須先clear一下,不然不少信息會繼承自系統當前時間
        // 2.Calendar和Date的轉化 
        // (1) Calendar轉化爲Date Calendar
        cal = Calendar.getInstance();
        Date date = cal.getTime();
        // (2) Date轉化爲Calendar
        Date date = new Date();
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        // 3.格式化輸出日期時間(這個用的比較多)
        Date date = new Date();
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        String time = df.format(date);
        System.out.println(time);
        // 4.計算一年中的第幾星期
        // (1)計算某一天是一年中的第幾星期
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.YEAR, 2006);
        cal.set(Calendar.MONTH, 8);
        cal.set(Calendar.DAY_OF_MONTH, 3);
        int weekno = cal.get(Calendar.WEEK_OF_YEAR);
        // (2)計算一年中的第幾星期是幾號
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.YEAR, 2006);
        cal.set(Calendar.WEEK_OF_YEAR, 1);
        cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
        System.out.println(df.format(cal.getTime()));//輸出:2006-01-02
        // 5.add()和roll()的用法(不太經常使用)
        // (1)add()方法
        SimpleDateFormat df=newSimpleDateFormat("yyyy-MM-dd");
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.YEAR, 2006);
        cal.set(Calendar.MONTH, 8);
        cal.set(Calendar.DAY_OF_MONTH, 3);
        cal.add(Calendar.DATE, -4);
        Date date = cal.getTime();
        System.out.println(df.format(date));
        cal.add(Calendar.DATE, 4);
        date = cal.getTime();
        System.out.println(df.format(date));//輸出:2006-08-30 2006-09-03
        //(2)roll方法
        cal.set(Calendar.YEAR, 2006);
        cal.set(Calendar.MONTH,8);
        cal.set(Calendar.DAY_OF_MONTH,3);
        cal.roll(Calendar.DATE, -4);
        date=cal.getTime();
        System.out.println(df.format(date));
        cal.roll(Calendar.DATE,4);
        date=cal.getTime();
        System.out.println(df.format(date));//輸出:2006-09-292006-09-03
        // 可見,roll()方法在本月內循環,通常使用add()方法;
相關文章
相關標籤/搜索