Calendar类简单常用的几种方法(java核心卷1-D3)

一、Calendar类
1、Calendar的实例化:由于Calendar是抽象类,不可以直接new出一个对象
Calendar calendar=Calendar.getInstance();

2、Calendar类与Date类的互相转换
1) 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、计算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中的格式一致

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值