Date日期类

本文详细介绍了JavaDate类如何表示特定时刻,包括其基于时间戳的工作原理、构造方法(尤其是只有一个隐式构造器)、以及过时但仍然实用的成员方法,如设置时间和获取时间戳的毫秒值。
摘要由CSDN通过智能技术生成

Date日期类

Date类的对象表示一个特定的时刻瞬间,精确到毫秒,更具体一点来说,Date类的对象中是通过存储一个long类型的时间戳进而来存储时间的。

Date类中有重写的toString方法,直接打印Date对象会获取当前时间,格式是:星期 月份 日 hh:mm:ss 时区缩写 年份

// 创建当前日期对象
Date date = new Date();
System.out.println(date);
// Fri Apr 12 21:30:43 CST 2024  中国的时区缩写是CST(China Standard Time)

时间戳

时间戳本身是一个比较复杂的概念,而Java语言当中所使用的时间戳主要是指Unix时间戳,它的涵义是:

从格林威治时间(GMT时间,世界时的起点)1970年01月01日00时00分00秒(北京时间是1970年01月01日08时00分00秒)到现在的秒数(毫秒数)。

Date类中的成员变量

在Java中存储的时间戳是一个long类型的毫秒数,即Date类当中的成员变量:

private transient long fastTime;

Date类中的构造方法(用来创建Date对象)

我们来看一下Date类目前还能够使用的,没有过时的两个构造方法:

// Date()  该构造函数使用当前日期和时间来创建对象	
Date date = new Date();

// Date(long date)  使用一个时间戳来创建对应时间的日期对象
long time2 = 1712821406000L;
Date date1 = new Date(time2);

该类的构造器源码如下:

public Date() {
 this(System.currentTimeMillis());
}
public Date(long date) {
 fastTime = date;
}

所以实际上,Date类只有一个构造器,那就是给fastTime成员变量赋值的构造器。

无参构造器当中使用了以下代码来获取一个毫秒值:

System.currentTimeMillis()

这个方法是一个本地方法,该方法会根据操作系统时间来获取当前的时间戳。

Date类中的成员方法

Date类的成员方法也大多过时了,需要大家了解的成员方法只有两个:

  1. 用一个时间戳来设置此Date对象:void setTime(long time)
    date.setTime(0);
    System.out.println(date);
    // Thu Jan 01 08:00:00 CST 1970 格林威治时间1970 年 1 月 1 日 00:00:00是中国的1970 年 1 月 1 日 08:00:00

  2. 获取当前Date对象的时间戳的毫秒值:long getTime()
    long time = date.getTime();
    System.out.println(time);
    // 1712928734333

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值