磨刀不误砍柴工

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。

   ::  ::  ::  :: 管理
工具类:
package
 com.power.date;

import  java.text.ParseException;
import  java.text.SimpleDateFormat;
import  java.util.Calendar;
import  java.util.Date;

public   class  DateUtils {        
    
/**
     * 格式化日期
     * 
@param  date
     * 
@param  pattern
     * 
@return
     
*/
    
    
public   static  String format(Date date,String pattern){
        SimpleDateFormat format 
=    new  SimpleDateFormat(pattern);        
        
return  format.format(date);
    }
    
    
/**
     * 根据字符串生成日期
     * 
@param  dateStr
     * 
@param  pattern
     * 
@return
     * 
@throws  ParseException
     
*/
    
    
public   static  Date parse(String dateStr,String pattern)  throws  ParseException{
        SimpleDateFormat format 
=    new  SimpleDateFormat(pattern);    
        
return  format.parse(dateStr);
    }
    
    
/**
     * 比较日期前后
     * 
@param  date 
     * 
@param  when 
     * 
@return  date在when之前,返回false,否则返回true
     
*/
    
public   static   boolean  after(Date date,Date when){
        
return  date.after(when);
    }
    
/**
     * 添加(或减小)时间
     * 
@param  date
     * 
@param  field 要添加(或减小)的字段(年或月或日或)
     * 
@param  amount 要添加(或减小)的数量,amount为正数时,是添加,为负数时是减小
     * 
@return  日期
     
*/
    
public   static  Date add(Date date, int  field, int  amount){        
        Calendar ca 
=  Calendar.getInstance();
        ca.setTime(date);
        ca.add(field, amount);        
        
return  ca.getTime();
    }
    
    
/**
     * 添加(或减小)时间
     * 
@param  date
     * 
@param  field 要添加(或减小)的字段(年或月或日或)
     * 
@param  amount 要添加(或减小)的数量,amount为正数时,是添加,为负数时是减小
     * 
@param  pattern 格式化模式
     * 
@return  格式化后的日期字符串
     
*/
    
public   static  String add(Date date, int  field, int  amount,String pattern){        
        Calendar ca 
=  Calendar.getInstance();
        ca.setTime(date);
        ca.add(field, amount);        
        
        
return  format(ca.getTime(),pattern);
    }
    
    
public   class  DatePattern{
        
public   static   final  String Y_M_D = " yyyy-MM-dd " ;
        
public   static   final  String Y_M_D_H_M_S = " yyyy-MM-dd HH:mm:ss " ;
    }
}

测试类:


/**
 * 
 
*/
package  com.power.date;

import  java.text.ParseException;
import  java.util.Calendar;
import  java.util.Date;

import  org.junit.Test;
import   static  junit.framework.Assert. * ;

/**
 * 
@author  liwei
 *
 
*/
public   class  TestDateUtils {
    @Test
    
public   void  testFormat(){
        Date now 
=   new  Date();
        System.out.println(DateUtils.format(now, DateUtils.DatePattern.Y_M_D));
        System.out.println(DateUtils.format(now, DateUtils.DatePattern.Y_M_D_H_M_S));
    }
    @Test
    
public   void  testParse()  throws  ParseException{
        String dateStr
= " 2009-06-09 " ;
        Date date 
=  DateUtils.parse(dateStr, DateUtils.DatePattern.Y_M_D);
        System.out.println(DateUtils.format(date, DateUtils.DatePattern.Y_M_D));
        
        dateStr
= " 2009-06-09 10:14:57 " ;
        Date date2 
=  DateUtils.parse(dateStr, DateUtils.DatePattern.Y_M_D_H_M_S);
        System.out.println(DateUtils.format(date2, DateUtils.DatePattern.Y_M_D_H_M_S));
        
    }
    
    @Test 
    
public   void  testAfter()  throws  ParseException{
        String dateStr
= " 2009-06-09 " ;
        Date date 
=  DateUtils.parse(dateStr, DateUtils.DatePattern.Y_M_D);
        
        Date now 
=   new  Date();
        
        assertTrue(DateUtils.after(now, date));
        
    }
    
    @Test 
    
public   void  testAdd()  throws  ParseException{
        String dateStr
= " 2009-06-09 " ;
        Date date 
=  DateUtils.parse(dateStr, DateUtils.DatePattern.Y_M_D);
        
        Date date2
=  DateUtils.add(date, Calendar.MONDAY,  6 );        
        assertEquals(
" 2009-12-09 " , DateUtils.format(date2, DateUtils.DatePattern.Y_M_D));
        
        assertEquals(
" 2009-12-09 " , DateUtils.add(date,Calendar.MONDAY, 6 ,DateUtils.DatePattern.Y_M_D));
        
        
        
        date2 
=  DateUtils.add(date, Calendar.MONTH,  - 2 );        
        assertEquals(
" 2009-04-09 " , DateUtils.format(date2, DateUtils.DatePattern.Y_M_D));        
        
        assertEquals(
" 2009-04-09 " , DateUtils.add(date,Calendar.MONDAY, - 2 ,DateUtils.DatePattern.Y_M_D));
        
    }
    
    
    
    
}

posted on 2009-06-09 11:13 liwei5891 阅读(398) 评论(0)  编辑  收藏 所属分类: Java

只有注册用户登录后才能发表评论。


网站导航: