Java标准库——日期时间类介绍之Date

分类:
JAVA
标签:
API
时间
标准库
作者:
何鑫
创作时间:
2019/12/16 11:30:45

摘要:Java标准库中Date类常用方法介绍

Date类是我们在日常编程中使用比较多的类之一,对于这种使用比较频繁的类,我们应尽力做到了然于心,这样才会在日常工作及面试中能够游刃有余,得心应手。本文将以实用为准则,基于JavaSE1.8标准库对Date类的常用方法做一个介绍,希望能对大家有所帮助。

构造方法

Date类的构造方法大多数已经过时了,留给我们的只有两个Date()Date(long Date)两个构造方法。

从源码中我们可以知道,无参构造其实就是调用了有参构造,只不过传入的参数是系统当前毫秒数(以1970年1月1日00:00:00 GMT为基准,下同),即以系统当前时间来构造一个Date对象。而有参构造自然是以指定的毫秒数来构造Date对象。

常用公共方法

boolean after(Date when)boolean before(Date when)

顾名思义,从方法名我们就可以知道他的用途,after(Date when)用于测试日期是否在指定日期之后,before(Date when)用于测试日期是否在指定日期之前。

我们来测试一下这两个方法:

public static void main(String[] args) {
    // 以现在时构造Date对象
    Date now = new Date();
    // 以过去指定时间构造Date对象
    Date past = new Date(10000L);
    // 我们明确知道past肯定在now之后的 下面我们进行测试
    boolean after = now.after(past);
    System.out.println(after); // 返回true
    boolean before = now.before(past);
    System.out.println(before); // 返回false
}

这便是这两个方法的用法。


int compareTo(Date anotherDate)

与上面两个方法异曲同工,也是比较两个日期,不同的是返回值,如果两个日期相同,返回0,如果此日期在Date参数之前,返回-1 ; 如果此日期在Date参数之后,返回1 。比较简单,这里就不做测试了。


setTime(long time)long getTime()

设置Date的毫秒数和获取Date的毫秒数。

public static void main(String[] args) {
    // 以现在时构造Date对象
    Date now = new Date();
    // 输出当前时间毫秒数
    System.out.println(now.getTime()); // 输出1576466337980

    // 设置毫秒数
    now.setTime(1576466337981L);
    System.out.println(now.getTime()); // 输出1576466337981

}

小提示获取当前时间毫秒值请直接使用System.currentTimeMillis(),不需要使用new Date().getTime(),因为无参构造会默认使用System.currentTimeMillis()方法设置毫秒值,所以也就没必要多此一举了

Date类中我们真正经常使用的也就上面这些方法了,其他多数都已被标记为过时,使用其他类的方法进行了替代,我们后续将会陆续讲到,这里便先告一段落,感谢您的阅读,我们下次见!

发表评论

温馨提示: 评论先审核后发布, 请勿发表不良言论

所有评论