Date和Calendar的区别以及对他们简单的使用

1、什么是Date和Calendar

a、Date类表示的是特定的,瞬间的,它能精确毫秒。

b、Calendar它是一种抽象类,相比Date它在操作日历的时候提供了一些方法来操作日历字段

2、Date和Calendar常见的使用方式

a、Date

        Date date = new Date();
        System.out.println("毫秒:"+date.getTime());//输入毫秒

        //时间转字符串
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String time = sdf.format(date);
        System.out.println("时间转字符串:"+time);

        //利用字符串来转时间格式(记得抛出异常)
        String time02 = "2018-09-05";
        SimpleDateFormat  sdf2 = new SimpleDateFormat ("yyyy-MM-dd");
        Date date2 = sdf2.parse(time02);
        System.out.println("字符串转时间格式:"+date2);

b、Calendar

        // 使用默认时区和语言环境获得一个日历
        Calendar cal = Calendar.getInstance();
        // 赋值时年月日时分秒常用的6个值,注意月份下标从0开始,所以取月份要+1
        System.out.println("年:" + cal.get(Calendar.YEAR));
        System.out.println("月:" + (cal.get(Calendar.MONTH) + 1));
        System.out.println("日:" + cal.get(Calendar.DAY_OF_MONTH));
        System.out.println("时:" + cal.get(Calendar.HOUR_OF_DAY));
        System.out.println("分:" + cal.get(Calendar.MINUTE));
        System.out.println("秒:" + cal.get(Calendar.SECOND));

        //手动设置某个日期
        Calendar cal02 = Calendar.getInstance();
        //注意,设置时间的时候月份的下标是在0开始的
        //设置时间不一定要这6个参数3个参数也是可以的
        cal02.set(2018,9,1,12,0,0);//二零一八年十月一号十二点
        System.out.println(cal02.getTime());

注意:

在大多数情况下,date要实现的功能都可以通过calendar来实现的(少数情况除外),在这上面只是列出的常用方法,感兴趣的程序猿可以通过这些方法来简单的去使用Calendar和Date,在使用的过程当中一点要注意代码的中的注释哦。

3、Date和Calendar有什么区别

区别:比较哟明显的区别是Date是日期,Calendar是日历,Date是类,Calendar是抽象类。当然,你也可以觉得Calendar是Date的加强版

4、在开发过程当中,使用Date和Calendar哪种的效率更高

这个就要看项目的具体需求了,不过在当前的开发环境中,Calendar使用的情况是比Date更多,毕竟它提供的方法大大的方便了我们程序猿完成跟时间有关的功能,但是这并不意味这Date就会淘汰,毕竟他们两个还是有区别的,笔者只是认为Calendar用起来更好。

猜你喜欢

转载自blog.csdn.net/qq_36138652/article/details/82430600