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

版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。