Calendar类简单常用的几种方法

来源脚脚脚脚

blog.csdn.net/wangdajiao

公众号注:文末阅读原文可直达java开发学习网站



1、Calendar的实例化


由于Calendar是抽象类,不可以直接new出一个对象

Calendar calendar=Calendar.getInstance();



2、Calendar类与Date类的互相转换 


Calendar转化成Date 

Calendar cal=Calendar.getInstance(); 
Date date=cal.getTime();


Date转成Calendar 

Date date=new Date(); 
Calendar cal=Calendar.getInstance();
cal.setTime(date);



3、计算2016-6-1到2016-6-2两时间相差的小时

public class A {
   public static void main(String[] args) {
       Date d = new Date(2016,6-1,1);
       // 返回的是毫秒
       long l = d.getTime();
       Date d1 = new Date(2016,6-1,2);
       long l1 = d1.getTime();
       //得到的结果是24小时
       System.out.println((l1-l)/(1000*60*60));
       }
}



4、常用的Calendar方法 


注:Calendar中的月份是从0开始的 


1)格式化输出当前时间:用SimpleDateFormat创建一个带格式的对象,再用对象调用format()方法时传入date值

public class A {
   public static void main(String[] args) {
       Date d = new Date();
       SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
       String s = sf.format(d);
       System.out.println(s);
    }
}


2)计算2016年6月1日时2016年的第几个week 


思路:设置Calendar对象的值 为2016-6-1,再调用WEEK_OF_YEAR 方法计算出答案

public class A {
   public static void main(String[] args) {
       Calendar cal = Calendar.getInstance();
       cal.set(Calendar.YEAR, 2016);
       cal.set(Calendar.MONTH,6-1);
       cal.set(Calendar.DAY_OF_MONTH,1);
       int week = cal.get(Calendar.WEEK_OF_YEAR);
       System.out.println(week);
   }
}


3)计算2016年第23周是几月几号

public class A {
   public static void main(String[] args) {
       Calendar cal = Calendar.getInstance();
       SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
       cal.set(Calendar.YEAR, 2016);
       cal.set(Calendar.WEEK_OF_YEAR,23);
       //Monday是周天
       cal.set(Calendar.DAY_OF_WEEK,4);
       //Calendar转化成Date
       Date d = cal.getTime();
       String s = sf.format(d);
       System.out.println(s);
   }
}


4)字符串转化成时间类型,SimpleDateFormat.parse(String s)
记得要保持SimpleDateFormat和S中的格式一致


Calendar类简单常用的几种方法

发表评论