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()方法;

posted @ 2012-04-16 04:37  json_chan  阅读(9012)  评论(0编辑  收藏  举报