zoukankan      html  css  js  c++  java
  • 时间,日期类的认识与使用

      时间日期类在Java中使用Date类来封装的,由于Date这个类出现的时间比较早,经历了时间原点的变迁,以及JDK版本的变迁,很多的方法都已经过时了,因此很多方法的使用被现在Calendar日历取代。

      一.Date目前使用的场景(优点):

        1.获取程序运行的当前时间还是Date最为快捷,应为Date还有一个无参构造及一个带参构造还没有过时,

          ①我们可以直接使用创建对象的方法来获取当前时间,

             例:

              Date  now = new  Date ();

              System.out.println( now );//这样就能获得此时的时间,

          ②我们可以也可以通过输入一个毫秒数来得到这个毫秒数的时间,(此毫秒数是从时间原点1970年1月1日0:0:0开始计数的)

            例:

             ②-①:Long  now  =System.currentTimeMillis();这里可以得到距离时间到当前时间的毫秒数;

             ②-②:Date now = new Date(123456789);//这里的123456789是Long型的距离时间原点所经过的毫秒数;

                System.out.println( now );//得到时间原点开始经过123456789毫秒的时间,

                打印结果:Fri Jan 02 18:17:36 CST 1970 ----------->@

        2.Date在各个版本中都可以使用,

        3.我们可以从@ 处看到这样的外国时间表示方法我们看起来很不习惯,这里我们可以借助SimpleDateFormat来帮助我们自定义格式化时间和日期的输出;

          例:

            SimpleDateForma  sdf = new  SimpleDateForma(yyyy年MM月dd日  a  hh:mm:ss:SSS  E);

            Date  now = new  Date ();

            String  msg = sdf.format(now);

            System.out.println( now );

            打印显示的结果: 2016年12月25日 下午 05:30:35:130 星期日

      二.Date的不足(缺点):

        1.由于方法的过时,就不能达到根据指定的年月日时分秒来设置对象的值;

        2.很难取出时间日期内的一部分(比如 年、月、 日 等)进行单独的操作运算;

        3.为了弥补这一不足,我们只能使用Calendar日历类来代替进行操作;(Calendar是一个抽象类)怎样使用呢?

          例:   

    import java.util.Calendar;
    import java.util.Date;
    public class TestDate {
        public static void main(String[] args) {
            Calendar cal = Calendar.getInstance();//使用设计模式帮助我们直接获取到Calendar的子类对象,里面对应的就是当前日期时间
            int year = 2016;
            int month = 5;
            int date = 20;
            cal.set(year, month - 1, date);//month-1这是因为外国人设计是从0~11,我们习惯是1~12来计算月份的,
            //Calendar ---> Date
            Date birthday = cal.getTime();//将时间设置为2016年5月20日
            String dayOfWeek = new SimpleDateFormat("E").format(birthday);//获取这里2016年5月20日只一天是星期几?
            System.out.println(dayOfWeek);
        }
    }
  • 相关阅读:
    机器学习:特征选择方法简介
    VS快捷键
    非常适用的Sourceinsight插件,提高效率【强力推荐】
    Linux静态库和共享库
    C/C++ 位域知识小结
    __BEGIN_DECLS 和 __END_DECLS
    C语言可变参数va_list
    mac的terminal快捷键
    linux进程、线程与cpu的亲和性(affinity)
    C++ Singleton (单例) 模式最优实现
  • 原文地址:https://www.cnblogs.com/qq1083735206/p/6220050.html
Copyright © 2011-2022 走看看