java.util.Date详解

书欣 Java教程 发布时间:2023-01-27 21:44:38 阅读数:18233 1
下文是笔者详解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
date对象toString方法的示例分享
版权声明

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

本文链接: https://www.Java265.com/JavaCourse/202301/5533.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者