一、 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();
}
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
// 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()方法;