「这是我参与11月更文挑战的第13天,活动详情查看:2021最后一次更文挑战」
前言
大家好,我是程序猿小白 GW_gw,很高兴能和大家一起学习进步。
以下内容部分来自于网络,如有侵权,请联系我删除,本文仅用于学习交流,不用作任何商业用途。
摘要
本文主要介绍Date类的具体使用,以及实例应用。
1. Date类
1.1 Date类的作用
首先要明白Date类的主要作用。
官方的解释:类 Date 表示特定的瞬间,精确到毫秒。
根据我的理解总结为以下两点。
- 使用Date类来获取当前时间。
- 使用Date类构造时间,定位到需要的时间。
1.2 Date类的构造函数
Date类位于java.util包下。
仍未过时的Date类的构造方法有两个。
1.2.1 Date()
date() 分配并初始化Date对象,以便它表示分配它的时间,以最近的毫秒为度量单位。
来看一下源码:
public Date() {
this(System.currentTimeMillis());
}
调用了System.currentTimeMillis()方法来获取系统时间,所以你获得的时间取决于你的Java虚拟机的环境。也就是说,你的电脑显示的时间是多少,你的Date对象表示的时间就是多少。
我们打印输出来看一下。
这是格林威治标准时间。我们看着确实不太舒服,所以我们可以来根据我们需要的格式来解析这个时间,这个以后再说,这里需要关注的就是,实际时间就是我们的计算机的实际时间。
1.2.2 Date(long date)
Date(long date) 分配并初始化Date对象,表示自从1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数,即距离该标准时间的date毫秒时间。
源码:
public Date(long date) {
fastTime = date;
}
来打印输出看一下。
可以看到1000毫秒也就是1秒,距离标准时间1秒时间是多少。是不是感觉这个构造方法没什么用?只能说我们还没应用到该场景的时候。要不开发人员也不会提供这个类了,这里就先了解。
1.3 Date类的方法
Date类的方法这里就只介绍getTime()方法:返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
来看源码:
public long getTime() {
return getTimeImpl();
}
调用getTime()方法实际上就是调用getTimeImpl()方法。那getTimeImpl()方法是干什么的?
来看源码:
private final long getTimeImpl() {
if (cdate != null && !cdate.isNormalized()) {
normalize();
}
return fastTime;
}
返回fastTime,fastTime就是表示自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
1.4 Date类的应用实例
到目前为止,Date类的很多方法都已经过时了,最多的时候就是用来获取当前的系统时间。
我们可以利用这个方法来做一个定时器:
Date d = new Date();
long ms = d.getTime();
long t = 10*60*1000;
long time = t + ms;
while(true){
Date date = new Date();
if(date.getTime()>time){
System.out.println("已经过了十分钟了!!!");
break;
}
}
快来试一下吧!
结语
以上就是我对于Date类的一些具体使用的浅见,即此分享,希望和读者共同进步。如有不正之处,欢迎留言指正。