Chinaunix首页 | 论坛 | 博客
  • 博客访问: 19590
  • 博文数量: 13
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 140
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-05 20:27
文章分类

全部博文(13)

文章存档

2010年(13)

我的朋友
最近访客

分类: 系统运维

2010-08-29 23:15:57

    本文是常用java date 方法集合的第一部分,讲到了计算某一月份的最大天数、Calendar和Date的转化、格式化输出日期时间、计算一年中的第几星期以及add()和roll()的用法。

    1.计算某一月份的最大天数:

    1. Calendar time=Calendar.getInstance();  
    2. time.clear();  
    3. time.set(Calendar.YEAR,year); //year 为 int   
    4. time.set(Calendar.MONTH,i-1);//注意,Calendar对象默认一月为0             
    5. int day=time.getActualMaximum(Calendar.DAY_OF_MONTH);//本月份的天数 


    注:在使用set方法之前,必须先clear一下,否则很多信息会继承自系统当前时间

    2.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(date); 

    3.格式化输出日期时间 (这个用的比较多):

    1. Date date=new Date();  
    2. SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");  
    3. String time=df.format(date);  
    4. System.out.println(time); 

    4.计算一年中的第几星期:

    (1)计算某一天是一年中的第几星期:

    1. Calendar cal=Calendar.getInstance();  
    2. cal.set(Calendar.YEAR, 2006);  
    3. cal.set(Calendar.MONTH, 8);  
    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, 2006);  
    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()));  
    7. 输出:  
    8. 2006-01-02 

    5.add()和roll()的用法(不太常用):

    1. (1)add()方法  
    2. SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");  
    3. Calendar cal=Calendar.getInstance();  
    4. cal.set(Calendar.YEAR, 2006);  
    5. cal.set(Calendar.MONTH, 8);  
    6. cal.set(Calendar.DAY_OF_MONTH, 3);  
    7. cal.add(Calendar.DATE, -4);  
    8. Date date=cal.getTime();  
    9. System.out.println(df.format(date));  
    10. cal.add(Calendar.DATE, 4);  
    11. date=cal.getTime();  
    12. System.out.println(df.format(date));  
    13. 输出:  
    14.     2006-08-30 
    15.     2006-09-03 
    16. (2)roll方法  
    17. cal.set(Calendar.YEAR, 2006);  
    18. cal.set(Calendar.MONTH, 8);  
    19. cal.set(Calendar.DAY_OF_MONTH, 3);  
    20. cal.roll(Calendar.DATE, -4);  
    21. date=cal.getTime();  
    22. System.out.println(df.format(date));  
    23. cal.roll(Calendar.DATE, 4);  
    24. date=cal.getTime();  
    25. System.out.println(df.format(date));  
    26. 输出:  
    27.     2006-09-29 
    28.     2006-09-03 


    可见,roll()方法在本月内循环,一般使用add()方法。

    以上为常用java date 方法集合的第一部分,如要完整了解,请关注第二部分。

阅读(351) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~