java Date 小结

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值