java.util.Date详解
下文是笔者详解Date类的点点滴滴,如下所示
Date详解
Date类在java中用于表示
特定的时刻
Date对象表示的时间可以精确到毫秒
Date类源码
public class Date extends Object implements Serializable, Cloneable, Comparable<Date>
从Date类的定义
可以看见Date对象可序列化,可克隆,可比较,拥有固定的排序
Date对象中年、月、日、小时、分钟、秒说明
月: 由0到11的整数表示; 0是1月,1是2月,依此类推; 因此11月是12月。 小时: 由0到23之间的整数表示 从午夜到凌晨1点的小时是小时0 从中午到下午1点的小时是小时12 分钟: 由0到59的整数表示
Date对象的构造函数简介
public Date() {
this(System.currentTimeMillis());
//注释:
System.currentTimeMillis() 可以获得当前时间的毫秒数
}
Date(long time)
public Date(long date) {
fastTime = date;
}
根据指定的毫秒数,创建date对象
Date()方法的示例
Date date = new Date(); System.out.println(date); ----以上代码,将输出以下信息----- Sun Sep 21 02:30:12 CST 2022 long time2 = System.currentTimeMillis(); //注释:System.currentTimeMillis() 可以获得当前时间的毫秒数 System.out.println(time2); Date date2 = new Date(time2); System.out.println(date2);
Date类中常用方法
after(Date when)
public boolean after(Date when) {
return getMillisOf(this) > getMillisOf(when);
}
返回值说明:
当返回true时,
则说明Date对象所代表的时刻晚于when
否则返回false
before(Date when)
public boolean before(Date when) {
return getMillisOf(this) < getMillisOf(when);
}
返回值说明:
返回true,则说明Date对象所代表的时刻早于when
否则返回false
compareTo(Date anotherDate)
public int compareTo(Date anotherDate) {
long thisTime = getMillisOf(this);
long anotherTime = getMillisOf(anotherDate);
return (thisTime<anotherTime ? -1 : (thisTime==anotherTime ? 0 : 1));
}
//如果thisTime小则返回-1,相等返回0,大于返回1.
equals(Object obj)源码
public boolean equals(Object obj) { // obj - 要与之比较的对象。
return obj instanceof Date && getTime() == ((Date) obj).getTime();
}
equals方法的返回值的数据类型为 boolean。
equals方法的功能:
比较两个Date对象的内容即时间毫秒数是否相等。
返回值说明:
返回true,则说明对象相同
否则返回false
getTime()
public long getTime() {
return getTimeImpl();
}
返回当前date对象的毫秒数
setTime(long time)
public void setTime(long time) {
fastTime = time;
cdate = null;
}
设置当前date对象所对应的毫秒数
clone()
public Object clone() 对Object类里的clone()方法的重写 方法返回此对象的副本 这个实例的克隆。
clone()方法示例
//使用前面创建的对象date1 Date date3 = (Date) date1.clone(); System.out.println(date1 == date3); System.out.println(date1.equals(date3)); 打印结果 false true //false表示两者地址不同即克隆出来的对象拥有新的地址 //true表示两者内容相同
方法from(Instant instant)
public static Date from(Instant instant)
此方法的功能:
从Instant对象获得Date实例
Instant使用的精度为纳秒
而Date使用的精度为毫秒
此转换将截断任何多余的精度信息
hashCode()
public int hashCode()
hashCode方法的功能:
返回此对象的哈希码值
结果是getTime()方法返回的原始long值的两半的异或
(int)(this.getTime()^(this.getTime() >>> 32))
是对类 Object 中 hashCode 方法的重写
返回值说明:
返回此对象的哈希码值
toInstant()
public Instant toInstant()
toInstant方法的功能:
将此Date对象转换为Instant
toString()
public String toString()
toString()方法的功能:
将此Date对象转换为以下形式的String
dow mon dd hh:mm:ss zzz yyyy
返回值说明:
-dow是星期几(Sun, Mon, Tue, Wed, Thu, Fri, Sat)
-mon是个月(Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec)
-dd是该月的第几天(01到31),以小数点后两位数。
-hh是一天中的小时(00到23),以小数点后两位数。
-mm是小时内的分钟(00到59),以小数点后两位数。
-ss是分钟内的第二个(00到61),两位十进制数字。
-zzz是时区(可能反映夏令时),
标准时区缩写包括方法parse识别的缩写。 如果时区信息不可用,则zzz为空 - 也就是说,它根本不包含任何字符。
-yyyy是年份,四位数
date对象toString()方法的示例
/**
* java265.com Date对象toString()的示例
*
* @throws IOException
*/
public static void main(String[] args) throws IOException {
Date d = new Date();
System.out.println(d.toString());
}
----运行以上代码,将输出以下信息------
Fri Jan 27 21:42:32 CST 2023
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


