java Date 小结

来源:互联网 发布:芒果台网络直播 编辑:程序博客网 时间:2024/06/06 08:53
40人阅读 评论(0)收藏举报

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

  Calendar time = Calendar.getInstance();
  time.clear();
  time.set(Calendar.YEAR,2012);
  //calendar默认的一月是 0
  time.set(Calendar.MONTH, 6);//July
  //本月份的天数
  int day = time.getActualMaximum(Calendar.DAY_OF_MONTH);
  System.out.println("day = "+day);

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

 

2、Calendar 和 Date 的转化

1) Calendar -->Date    Calendar转化为Date

    Calendar cal=Calendar.getInstance();
   
    Date date=cal.getTime();
    
2) Date转化为Calendar
   
    Date date=new Date();
   
    Calendar cal=Calendar.getInstance();
   
    cal.setTime(date);

 

3、格式化输出日期时间

    Date date=new Date();
   
    SimpleDateFormat df=new SimpleDateFormat(“yyyy-MM-dd hh:mm:ss”);
   
    String time=df.format(date);
   
    System.out.println(time);
   

4、计算一年中的第几星期

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

Calendar time = Calendar.getInstance();
  
  time.set(Calendar.YEAR,2012);
  //calendar默认的一月是 0
  time.set(Calendar.MONTH, 0);//一月
  time.set(Calendar.DAY_OF_MONTH, 10);
  //本月份的天数
  int week = time.get(Calendar.WEEK_OF_YEAR);
     System.out.println("week = "+week);

2) 计算一年中的第几星期是几号
   
    SimpleDateFormat df=new SimpleDateFormat(“yyyy-MM-dd”);
   
    Calendar cal=Calendar.getInstance();
   
    cal.set(Calendar.YEAR, 2012);
   
    cal.set(Calendar.WEEK_OF_YEAR, 1);
   
    cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
   
    System.out.println(df.format(cal.getTime()));
   
    输出:
   
    2012-01-02

 

6.计算两个任意时间中间的间隔天数(这个比较常用)
    
(1)传进Calendar对象

public int getIntervalDays(Calendar startday,Calendar endday)…{
   
    if(startday.after(endday))…{
   
    Calendar cal=startday;
   
    startday=endday;
   
    endday=cal;
   
    }
   
    long sl=startday.getTimeInMillis();
   
    long el=endday.getTimeInMillis();
   
    long ei=el-sl;
   
    return (int)(ei/(1000*60*60*24));
   
    }
   
    (2)传进Date对象
   
    public int getIntervalDays(Date startday,Date endday)…{
   
    if(startday.after(endday))…{
   
    Date cal=startday;
   
    startday=endday;
   
    endday=cal;
   
    }
   
    long sl=startday.getTime();
   
    long el=endday.getTime();
   
    long ei=el-sl;
   
    return (int)(ei/(1000*60*60*24));
   
    }
    
  7. String 和 Date ,Long 之间相互转换 (最常用)
   
    字符串转化成时间类型(字符串可以是任意类型,只要和SimpleDateFormat中的格式一致即可)
   
    通常我们取时间跨度的时候,会substring出具体时间--long-比较
    
  SimpleDateFormat sdf = new SimpleDateFormat("M/dd/yyyy hh:mm:ss ",Locale.CHINESE);
    
     Date d = sdf.parse("5/13/2003 10:31:37 AM");
     System.out.println("Date_d="+d);

     long dvalue=d.getTime();
     System.out.println("dvalue = "+dvalue);


     SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
     String mDateTime1=formatter.format(d);
     System.out.println("str_date = "+mDateTime1);

 

 

来源于网址(鸣谢):http://www.cn-java.com/www1/?action-viewnews-itemid-106973

http://blog.csdn.net/snn1410/article/category/919550/2