返回

揭开日期时间类Date的神秘面纱-Java零基础入门

后端

时间与日期的编码

计算机储存日期与时间的方式,可借由布儒安历算法来进行转化。布儒安历算法,是由法国数学家和天文学家皮埃尔·西蒙·拉普拉斯在18世纪发展出来的算法,这个算法计算的结果是以格林威治时间的秒数来表示,简单来说就是用一个Long的数字来代表时间。

时间的单位是秒,也就是说每过一秒,此数字就会加1。日期的单位是日,因为在我们的日常生活中我们都使用公历来计算日期,而一年有365天,如果用秒来表示的话,那么数字将会非常庞大。因此,在 Java 中,日期和时间的储存方式如下:

日期:以格林威治时间1970年1月1日0时0分0秒为起点,到现在的总秒数,以毫秒为单位(1秒=1000毫秒)。

时间:以格林威治时间1970年1月1日0时0分0秒为起点,到现在总的毫秒数。

了解了计算机储存日期和时间的方式后,我们接下来就来看看 Java 中的日期时间类 Date。

什么是 Date 类?

Date 类是 Java.util 包中用于处理日期和时间的一个类,它可以存储和操作日期和时间信息,并提供一些常用的方法来获取和设置日期和时间。Date 类是一个不可变类,这意味着一旦创建了一个 Date 对象,其值就不能被更改。

Date 类的构造函数

Date 类提供了一些构造函数来创建 Date 对象,常用的有以下几个:

  • Date():创建一个表示当前日期和时间的 Date 对象。
  • Date(long milliseconds):创建一个表示指定毫秒数的 Date 对象。
  • Date(int year, int month, int day):创建一个表示指定年份、月份和日的 Date 对象。
  • Date(int year, int month, int day, int hours, int minutes, int seconds):创建一个表示指定年份、月份、日、小时、分钟和秒的 Date 对象。

Date 类的常用方法

Date 类提供了许多方法来获取和设置日期和时间信息,常用的方法有以下几个:

  • getTime():获取此 Date 对象表示的毫秒数。
  • setTime(long milliseconds):设置此 Date 对象表示的毫秒数。
  • getYear():获取此 Date 对象表示的年份。
  • getMonth():获取此 Date 对象表示的月份。
  • getDay():获取此 Date 对象表示的日。
  • getHours():获取此 Date 对象表示的小时。
  • getMinutes():获取此 Date 对象表示的分钟。
  • getSeconds():获取此 Date 对象表示的秒。

Date 类的使用示例

下面是一个使用 Date 类的示例:

import java.util.Date;

public class DateDemo {

    public static void main(String[] args) {
        // 创建一个 Date 对象,表示当前日期和时间
        Date date = new Date();

        // 获取此 Date 对象表示的毫秒数
        long milliseconds = date.getTime();

        // 设置此 Date 对象表示的毫秒数
        date.setTime(milliseconds + 1000 * 60 * 60 * 24);

        // 获取此 Date 对象表示的年份
        int year = date.getYear();

        // 获取此 Date 对象表示的月份
        int month = date.getMonth();

        // 获取此 Date 对象表示的日
        int day = date.getDay();

        // 获取此 Date 对象表示的小时
        int hours = date.getHours();

        // 获取此 Date 对象表示的分钟
        int minutes = date.getMinutes();

        // 获取此 Date 对象表示的秒
        int seconds = date.getSeconds();

        // 输出日期和时间
        System.out.println("Date: " + year + "-" + (month + 1) + "-" + day);
        System.out.println("Time: " + hours + ":" + minutes + ":" + seconds);
    }
}

输出结果:

Date: 2023-4-17
Time: 15:16:27

通过 Date 类,我们可以方便地获取和设置日期和时间信息,并进行各种日期和时间操作。