阿八博客
  • 100000+

    文章

  • 23

    评论

  • 20

    友链

  • 最近新加了很多技术文章,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

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

欢迎来到阿八个人博客网站。本 阿八个人博客 网站提供最新的站长新闻,各种互联网资讯。 喜欢本站的朋友可以收藏本站,或者加QQ:我们大家一起来交流技术! URL链接:https://www.abboke.com/grfx/253040.html

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

构造方法

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

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

常用公共方法

boolean after(Datewhen)booleanbefore(Datewhen)

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

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

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

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

 

int compareTo(DateanotherDate)

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

 

setTime(long time)long getTime()

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

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

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

}

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

 

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

相关文章