1. /* 
  2.  *java中对日期的加减操作 
  3.  *gc.add(1,-1)表示年份减一. 
  4.  *gc.add(2,-1)表示月份减一. 
  5.  *gc.add(3.-1)表示周减一. 
  6.  *gc.add(5,-1)表示天减一. 
  7.  *以此类推应该可以精确的毫秒吧.没有再试.大家可以试试. 
  8.  *GregorianCalendar类的add(int field,int amount)方法表示年月日加减. 
  9.  *field参数表示年,月.日等. 
  10.  *amount参数表示要加减的数量. 
  11.  * 
  12.  * UseDate.java 测试如下: 
  13.  */ 
  14.  
  15.  
  16. import java.util.Calendar; 
  17. import java.util.Date; 
  18. import java.util.GregorianCalendar; 
  19. import java.util.Locale; 
  20. import java.text.ParseException; 
  21. import java.text.ParsePosition; 
  22. import java.text.SimpleDateFormat; 
  23. public class UserDate { 
  24.  
  25.     /***对时间进行加减运算****/ 
  26.      
  27.     Date d=new Date(); 
  28.     GregorianCalendar gc =new GregorianCalendar(); 
  29.     SimpleDateFormat sf  =new SimpleDateFormat("yyyy-MM-dd"); //日期格式化 
  30.      
  31.     //当前时间 
  32.     public String getLocalDate() 
  33.     { 
  34.             return sf.format(d); 
  35.     } 
  36.      
  37.     //年份 
  38.     public String getYears() 
  39.     { 
  40.         gc.setTime(d); 
  41.         gc.add(1,+1); 
  42.         gc.set(gc.get(Calendar.YEAR),gc.get(Calendar.MONTH),gc.get(Calendar.DATE)); 
  43.          
  44.         return sf.format(gc.getTime()); 
  45.     } 
  46.      
  47.     //月份 
  48.     public String getHalfYear() 
  49.     { 
  50.         gc.setTime(d); 
  51.         gc.add(2,+6); 
  52.         gc.set(gc.get(Calendar.YEAR),gc.get(Calendar.MONTH),gc.get(Calendar.DATE)); 
  53.          
  54.         return sf.format(gc.getTime()); 
  55.     } 
  56.      
  57.     //月份 
  58.     public String getQuarters() 
  59.     { 
  60.         gc.setTime(d); 
  61.         gc.add(2,+3); 
  62.         gc.set(gc.get(Calendar.YEAR),gc.get(Calendar.MONTH),gc.get(Calendar.DATE)); 
  63.          
  64.         return sf.format(gc.getTime()); 
  65.     } 
  66.      
  67.     //天数 
  68.     public String getDate(){ 
  69.         gc.setTime(d); 
  70.         gc.add(5, +11); 
  71.         gc.set(gc.get(Calendar.YEAR), gc.get(Calendar.MONTH), gc.get(Calendar.DATE)); 
  72.          
  73.         return sf.format(gc.getTime()); 
  74.     } 
  75.      
  76.     //对时间进行格式化 
  77.     public String getSimpleDateFormat(){ 
  78.         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
  79.         String time = sdf.format(new Date()); 
  80.          
  81.         return time; 
  82.     } 
  83.      
  84.     //时间加减运算的结果 
  85.     public int day(){//s1小s2大 
  86.     String s1 = "2011-09-10"
  87.     String s2 = "2011-09-19"
  88.      
  89.     int day=0
  90.     try{   
  91.     SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd");   
  92.     ParsePosition pos = new ParsePosition(0);   
  93.     ParsePosition pos1 = new ParsePosition(0);   
  94.     Date dt1=formatter.parse(s2,pos);   
  95.     Date dt2=formatter.parse(s1,pos1); 
  96.     long l = dt1.getTime() - dt2.getTime();   
  97.     day=(int)(l/(3600*24*1000)); 
  98.     }catch(Exception e){   
  99.     System.out.println("exception"+e.toString());   
  100.     }   
  101.     return day;   
  102.     } 
  103.      
  104.      
  105.     public String StringToDateTime(){ 
  106.         String myString = "Tue   Oct   18   04:11:56   CST   2005 "
  107.         String s = null
  108.         try   { 
  109.           SimpleDateFormat   sdf   =   new   SimpleDateFormat( "EEE   MMM   dd   HH:mm:ss   zzz   yyyy ",   Locale.US); 
  110.           Date   d   =   sdf.parse(myString); 
  111.           Calendar   c   =   Calendar.getInstance(); 
  112.           c.setTime(d); 
  113.           s = new   SimpleDateFormat( "yyyy-MM-dd ").format(c.getTime()); 
  114.           System.out.println(s); 
  115.    
  116.         }   catch   (Exception   e)   { 
  117.           e.printStackTrace(); 
  118.         }  
  119.         return s; 
  120.     } 
  121.      
  122.     //String类型时间转为Date类型时间 
  123.     public String StringToDateTime2(){ 
  124.         String time = "2011-09-19"
  125.         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA); 
  126.         Date timetoString = null
  127.          
  128.         try { 
  129.             timetoString = sdf.parse(time); 
  130.         } catch (ParseException e) { 
  131.             // TODO Auto-generated catch block 
  132.             e.printStackTrace(); 
  133.         } 
  134.          
  135.         System.out.println("转化后的Date类型:"+timetoString); 
  136.         String s = sdf.format(timetoString); 
  137.          
  138.         return s; 
  139.     } 
  140.      
  141.      
  142.     public static  void  main(String[] args) 
  143.     { 
  144.         UserDate ud= new UserDate(); 
  145.          
  146.         System.out.println("时间格式化:"+ud.getSimpleDateFormat()); 
  147.          
  148.         System.out.println("当前时间:"+ud.getLocalDate()); 
  149.         System.out.println("年份加一:"+ud.getYears()); 
  150.         System.out.println("月份加六:"+ud.getHalfYear()); 
  151.         System.out.println("月份加三:"+ud.getQuarters()); 
  152.         System.out.println("天数加十一:"+ud.getDate()); 
  153.         System.out.println("对时间进行加减运算的结果:"+ud.day()); 
  154.         System.out.println("String类型时间转换为Date类型时间:"+ud.StringToDateTime()); 
  155.         System.out.println("格式化后的时间:"+ud.StringToDateTime2()); 
  156.             }