Java常用类03 Date类及其相关类

四. Date及其相关类

  • Java将1970年1月1日00:00:00定为基准时间,每个度量单位是毫秒(1秒的千分之一)。使用long整型变量来表示时间。从基准时间往前往后几亿年的时间都可以表示。

  • 可以使用以下的方法获得现在时刻的"时刻数值"。

    long now = System.currentTimeMillis();
    

    这个"时间数值"是所有时间类的核心,年月日都是根据这个"数值"计算出来的。

  • Date类:

    使用如下方法新建一个Date对象:

    Date d1 = new Date();     //默认构造方法,新建的对象为调用时间
    Date d2 = new Date(2000); //使用一个长整形
    

    Date类的无参构造方法源码如下:

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

    发现他也是调用了System.currentTimeMillis();这个方法,所以默认构造是当前时间。


    date类的常用方法:

    方法名 方法作用
    after 测试该日期是否在指定日期之后
    before 测试该日期是否在指定日期之前
    getTime 返回从1970 01.01 00:00:00以来此Date对象的表示的毫秒数
    toString 返回为对应格式的字符串
    equals 比较两个日期是否相等

    其中,before和after方法可以通过源码得知,他们也是借由比较时间数值来得到结果的,可以自己翻阅源码的相关内容。

    其余Date类还有很多方法,但是多数方法已经被废弃了,不建议使用,有兴趣的可以翻阅源码或者JDK手册了解。

  • DateFormat类和SimpleDateFormat类

    DateFormat类的作用:把事件对象转化为指定格式的字符串。反之,把指定格式的字符串转化为时间对象。他是一个抽象类,一般使用它的子类SimpleDateFormat类来实现。

    构建格式化时间的字符遵循格式化字符的含义,他们的具体含义如下图:

    格式化字符含义

    通过如下的实例来了解他们的使用方法:

    package konoha.commonClass.dateEtc;
    
    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class ClassDateFormat {
        public static void main(String[] args) throws ParseException {
    
            //使用DateFormat抽象类的子类SimpleDateFormat格式化输出Date对象
            DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
            Date date1 = new Date();
            String str1 = df1.format(date1);
            System.out.println(str1);
    
            //使用DateFormat抽象类的子类SimpleDateFormat格式化解析字符串构造Date对象
            DateFormat df2 = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒");
            Date date2 = df2.parse("2020年12月31日  20时32分45秒");
            System.out.println(date2);
    
            //其他的一些使用方法
            //使用"D"格式符获取当前是这一年的第多少天
            DateFormat df3 = new SimpleDateFormat("D");
            System.out.println(df3.format(new Date()));
        }
    }
    
posted @ 2021-03-02 22:04  心叶酱  阅读(27)  评论(0编辑  收藏  举报