A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1.Date类
        总结:
                1.Date类使用的是util包下的。
                2.Date d = new Date();//把当前时间封装成一个Date对象
                3.Date d = new Date(1000);//把从时间原点开始过了1000毫秒的那个时间点封装成一个Date对象
                4.Date类跟Student类是一样的,都是一个javabean类。
                        Student是用来描述学生的
                        Date就是用来描述时间的。



        Student类:这个类表示的就是学生类。

        class Student{
                private String name;
                private int age;

                public Student(){}

                public Student(String name,int age){
                        this.name = name;
                        this.age = age;
                }

                get ... set方法
                ...

                toString
        }



        Date 类:这个类表示时间。
                        用来描述时间的一个javabean类。

        class Date{
                long fastTime;

                public Date(){
                        this(System.currentTimeMillis());
                }

                public Date(long date){
                        fastTime = date;
                }

                get...set...方法
        }



2.Date类常用方法
        getTime:获取当前Date对象的毫秒值。
        setTime:修改当前Date对象的毫秒值。



        Date d = new Date();
        System.out.println(d);//Wed Jun 12 15:24:40 CST 2019
        //以后你在公司写的代码,你能保证都是给像我们这么牛逼的人看的吗?
        //我们写的时间格式得符合我天朝大国的阅读习惯
        //2019年6月12日 15:26:00
        //2019/6/12 15:26:00
        //2019-6-12 15-26-00

        //我们想要让时间按照我们自己想的格式进行展示。
        //Date类就搞不定,就得使用到下面学习的SimpleDateFormat


3.SimpleDateFormat
        1.将日期按照我们自己定义的格式进行展示
                目的:方便用户看。


        2.将已经存在的字符串类型的日期,按照执行的格式进行解析。
                目的:方便时间的计算。

                String start = "2019年6月12日 15:59:13"
                String end = "2019年6月18日 00:00:00";
                //请计算,距离剁手还有多久?
                1,先把start和end转成Date对象
                2,再getTime获取到两个时间的毫秒值
                3,将两个毫秒值相减,那么就可以得到时间了。



4,日期工具类
        好处:
                以后我们有类似操作时,就不需要再写了,直接调用我们自己写的工具类就好了。
        作用:
                就是帮助我们简化代码的。

        步骤:
                1、创建一个专门放工具的包。命名 xxx.xxx.utils
                2、类名: A + Util
                                //比如:时间的工具类: DateUtil
                                //比如:集合的工具类: ListUtil
                3、私有化构造方法
                                //因为是工具类,不想让外界创建对象。
                4、所有的方法都写成静态的。


        需要记住:
                yyyy年MM月dd日 HH:mm:ss


5,Calendar 日历类
        Date SimpleDateFormat Calendar 三者的区别。
               
        Date:用来描述时间的javabean类
                 这个类的对象就表示某一个时间点。
       
        SimpleDateFormat:格式化和解析时间。
                                         如果我们直接打印Date的对象,不符合我们的阅读习惯。所以我们要格式化。
                                         如果我们要对某一个时间的毫秒值进行计算,需要进行解析。

        Calendar:日历类
                                就是把某一个时间点中,对应的年数据,月数据,日数据,星期数据,秒数据,一年中的第几天....
                                都封装到一个对象中,这个对象就是Calendar日历对象。


        应用:
                Date 不会单独使用。

                Date + SimpleDateFormat :当我们要进行日期格式化或者解析

                Date + Calendar : 当我们要对某一个字段进行计算或者要获取单独的字段值时。

        案例:
                我要把现在的时间往后推移三天。
                也是对单个的字段进行操作,所以用Calendar会更简单一些。

       

6.常用方法

        获取日历字段方法:get(int filed)

        偏移:add(int filed,int count)//当第二个参数为正数,往后加
                                                                  //当第二个参数为负数,往前减
       
        设置日历字段方法:set(int year,int month,int date)
                                                                //可以设置:年,月,日
                                                                //可以设置:针对于某一个单独的字段进行设置
                                                                //setTime:可以将Date对象设置进来。


扩散思维:
        1.
        我要求键盘录入的一个时间是一年中的第几天?
        2019年6月12日 是一年中的第几天。

        2.键盘录入一个年份,请说明这一年是闰年还是平年?
                两种方式做。
                        1.判断二月份最后一天是28还是29?
                        2.判断一年一共有365还是366?

        3.秒杀时间:
                "2019年6月18日 12:00:00"开始
                "2019年6月18日 12:05:00"结束

                现在有一小伙A,下单并付款了,时间为:"2019年6月18日 12:03:00"
                现在有一小伙B,下单并付款了,时间为:"2019年6月18日 12:05:10"

                请使用代码进行解析,判断A和B小伙谁参加上了秒杀活动。
       

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马