java語(yǔ)言中的date類及方法的用法?
一、Date類型的初始化
1、 Date(int year, int month, int date); 直接寫入年份是得不到正確的結(jié)果的。 因?yàn)閖ava中Date是從1900年開(kāi)始算的,所以前面的第一個(gè)參數(shù)只要填入從1900年后過(guò)了多少年就是你想要得到的年份。 月需要減1,日可以直接插入。 這種方法用的比較少,常用的是第二種方法。
2、 這種方法是將一個(gè)符合特定格式,比如yyyy-MM-dd,的字符串轉(zhuǎn)化成為Date類型的數(shù)據(jù)。 首先,定義一個(gè)Date類型的對(duì)象 Date date = null; 再定義一個(gè)String類型的符合格式的字符串 String dateStr = "2010-9-10"; 把這個(gè)字符串進(jìn)行拆分 String[ ] dateDivide = dateStr.split("-"); 把年月日分別取出,賦給Calendar,用 Calendar的getTime();取得日期再賦給date。
import java.util.Calendar;
import java.util.Date;
public class Main4 {
/**
* @param args
*/
public static void main(String[] args) {
Date date=null;
String dateStr="2010-9-10";
String[] dateDivide=dateStr.split("-");
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();//獲取一個(gè)日歷實(shí)例
c.set(year, month-1, day);//設(shè)定日歷的日期
date = c.getTime();
}
System.out.println(date);
}
}
二、Date類型的比較
Date a;
Date b;
假設(shè)現(xiàn)在你已經(jīng)實(shí)例化了a和b
a.after(b)返回一個(gè)boolean,如果a的時(shí)間在b之后(不包括等于)返回true
b.before(a)返回一個(gè)boolean,如果b的時(shí)間在a之前(不包括等于)返回true
a.equals(b)返回一個(gè)boolean,如果a的時(shí)間和b相等返回true
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Main4 {
/**
* @param args
*/
public static void main(String[] args) {
//Date date=null;
//String dateStr="2010-9-10";
//String[] dateDivide=dateStr.split("-");
//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();//獲取一個(gè)日歷實(shí)例
// c.set(year, month-1, day);//設(shè)定日歷的日期
// date = c.getTime();
//}
// System.out.println(date);
//Date類型常用的操作函數(shù)
//1.-----計(jì)算某一個(gè)月份的最大天數(shù)
Calendar calendar=Calendar.getInstance();
//使用set方法之前必須先clear一下,否則很多信息會(huì)繼承自系統(tǒng)當(dāng)前時(shí)間
//calendar.clear();
//calendar.set(Calendar.YEAR,2018);
//calendar.set(Calendar.MONTH,3-1);
//int day=calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
// 2.------Calendar和Date的轉(zhuǎn)化
//-----Calendar轉(zhuǎn)化為Date--
Date date=calendar.getTime();
System.out.println(date);//Sat Mar 24 11:39:55 CST 2018
//-----Date轉(zhuǎn)化為Calendar--
Date date1=new Date();
Calendar calendar1=Calendar.getInstance();
calendar1.setTime(date1);
//3.----計(jì)算一年中的第幾星期是幾號(hào)
SimpleDateFormat df=new SimpleDateFormat();
Calendar calen=Calendar.getInstance();
calen.set(Calendar.YEAR,2018);
calen.set(Calendar.WEEK_OF_YEAR,4);
calen.set(Calendar.DAY_OF_WEEK,4);
System.out.println(df.format(calen.getTime()));
//add方法
SimpleDateFormat dff=new SimpleDateFormat("yyyy-MM-dd");
Calendar calll=Calendar.getInstance();
calll.set(Calendar.YEAR,2018);
calll.set(Calendar.MONTH,4);
calll.set(Calendar.DAY_OF_MONTH,24);
calll.add(Calendar.DATE,-4);
Date dateee=calll.getTime();
System.out.println(dff.format(dateee));
calll.add(Calendar.DAY_OF_MONTH,-4);
//calll.add(Calendar.DATE,-4); 相等
Date datee1=calll.getTime();
System.out.println(dff.format(datee1));
}
}