最新Java中Date类型详解
⼀、Date类型的初始化
1、 Date(int year, int month, int date); 直接写⼊年份是得不到正确的结果的。因为java中Date是从1900年开始算的,所以前⾯的第⼀个参数只要填⼊从1900年后过了多少年就是你想要得到的年份。⽉需要减1,⽇可以直接插⼊。这种⽅法⽤的⽐较少,常⽤的是第⼆种⽅法。
2、这种⽅法是将⼀个符合特定格式,⽐如yyyy-MM-dd,的字符串转化成为Date类型的数据。⾸先,定义⼀个Date类型的对象 Date date = null; 再定义⼀个String类型的符合格式的字符串 String dateStr = "2010-9-10"; 把这个字符串进⾏拆分 String[ ]  dateDivide = dateStr.split("-");把年⽉⽇分别取出,赋给Calendar,⽤ Calendar的getTime();取得⽇期再赋给date。
例如:
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 = Instance();//获取⼀个⽇历实例
c.set(year, month-1, day);//设定⽇历的⽇期
date = c.getTime();
}
⼆、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相等返回true
三、Date类型常⽤的操作函数
// 1.计算某⼀⽉份的最⼤天数
Calendar time = Instance();
time.clear();
time.set(Calendar.YEAR, year); // year 为 int
time.set(Calendar.MONTH, i - 1);// 注意,Calendar对象默认⼀⽉为0
int day = ActualMaximum(Calendar.DAY_OF_MONTH);// 本⽉份的天数
// 注:在使⽤set⽅法之前,必须先clear⼀下,否则很多信息会继承⾃系统当前时间
// 2.Calendar和Date的转化
java中split的用法// (1) Calendar转化为Date Calendar
cal = Instance();
Date date = Time();
// (2) Date转化为Calendar
Date date = new Date();
Calendar cal = Instance();
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 = Instance();
cal.set(Calendar.YEAR, 2006);
cal.set(Calendar.MONTH, 8);
cal.set(Calendar.DAY_OF_MONTH, 3);
int weekno = (Calendar.WEEK_OF_YEAR);
// (2)计算⼀年中的第⼏星期是⼏号
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Instance();
cal.set(Calendar.YEAR, 2006);
cal.set(Calendar.WEEK_OF_YEAR, 1);
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.println(df.Time()));//输出:2006-01-02
// 5.add()和roll()的⽤法(不太常⽤)
// (1)add()⽅法
SimpleDateFormat df=newSimpleDateFormat("yyyy-MM-dd");
Calendar cal = Instance();
cal.set(Calendar.YEAR, 2006);
cal.set(Calendar.MONTH, 8);
cal.set(Calendar.DAY_OF_MONTH, 3);
cal.add(Calendar.DATE, -4);
Date date = Time();
System.out.println(df.format(date));
cal.add(Calendar.DATE, 4);
date = Time();
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);
Time();
System.out.println(df.format(date));
Time();
System.out.println(df.format(date));//输出:2006-09-292006-09-03        // 可见,roll()⽅法在本⽉内循环,⼀般使⽤add()⽅法;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。