Java里的时间类以及函数
1.Java计算某一月份的最大天数
1 Calendar time=Calendar.getInstance();//使用默认时区和语言环境获得一个日历 2 time.clear(); 3 time.set(Calendar.YEAR,year); 4 time.set(Calendar.MONTH,i-1);//注意Calendar对象默认一月是为零的 5 int day=time.getActualMaximum(Calendar.DAY_OF_YEAR);//获得本月份的天数
注意:在使用set方法之前,必须先调用clear(),否则很多信息会继承自系统当前的时间
2.Java中Calendar和Date的转化
(1)Calendar转化为Date
1 Calendar cal=Calendar.getInstance(); 2 Date date=cal.getTime();
(2)Date转换为Calendar
1 Date date=new Date(); 2 Calendar cal=Calendar.getInstance(); 3 cal.setTime();
3.Java格式化输出日期时间
1 Date date=new Date(); 2 SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");//设置日期时间格式 3 System.out.println(df.format(date));
4.Java计算一年中的第几星期
(1)计算某一天是一年中的第几星期
1 Calendar cal=Calendar.getInstance(); 2 cal.set(Calendar.YEAR,2012); 3 cal.set(Calendar.MONTH); 4 cal.set(Calendar.DAY_OF_MONTH,3); 5 int weekno=cal.get(Calendar.WEEK_OF_YEAR);
(2)计算一年中的星期几是几号
1 SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); 2 Calendar cal=Calendar.getInstance(); 3 cal.set(Calendar.YEAR,2012); 4 cal.set(Calendar.WEEK_OF_YEAR,1); 5 cal.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY); 6 System.out.println(df.format(cal.getTime()));
输出结果为:
2012-01-02
5.add()和roll()的用法
(1)add()方法
1 SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); 2 Calendar cal=Calendar.getInstance(); 3 cal.set(Calendar.YEAR,2012);//设置年份 4 cal.set(Calendar.MONTH,5);//设置月份 5 cal.set(Calendar.DAY_OF_MONTH,5); 6 cal.add(Calendar.DATE,-4); 7 Date date=cal.getTime(); 8 System.out.println(df.format(date)); 9 cal.add(Calendar.DATE,4); 10 date=cal.getTime(); 11 System.out.println(df.format(date));
输出结果为:
2012-06-05
2012-06-01
(2)roll()方法
1 SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); 2 Calendar cal=Calendar.getInstance(); 3 cal.set(Calendar.YEAR, 2012); 4 cal.set(Calendar.MONTH,8); 5 cal.set(Calendar.DAY_OF_MONTH, 3); 6 cal.roll(Calendar.DATE,-4); 7 Date date=cal.getTime(); 8 System.out.println(df.format(date)); 9 cal.roll(Calendar.DATE,4); 10 date=cal.getTime(); 11 System.out.println(df.format(date));
输出结果为:
2012-09-29
2012-09-03
可见,roll()方法在本月内循环,一般使用add()方法;