美文网首页
Java干货分享—Date类的使用!

Java干货分享—Date类的使用!

作者: 程序媛小白 | 来源:发表于2021-12-30 16:36 被阅读0次

    在Java中获取当前时间,可以使用 java.util.Date 类和 java.util.Calendar 类完成。其中,Date 类主要封装了系统的日期和时间的信息,Calendar 类则会根据系统的日历来解释 Date 对象。下面详细介绍Date类的具体使用。

    Date 类

            Date 类表示系统特定的时间戳,可以精确到毫秒。Date 对象表示时间的默认顺序是星期、月、日、小时、分、秒、年。

    1. 构造方法

    Date 类有如下两个构造方法。

    Date():此种形式表示分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒),使用该构造方法创建的对象可以获取本地的当前时间。

    Date(long date):此种形式表示从 GMT 时间(格林尼治时间)1970 年 1 月 1 日 0 时 0 分 0 秒开始经过参数 date 指定的毫秒数。

    这两个构造方法的使用示例如下:

    Date date1 = new Date();    // 调用无参数构造函数

    System.out.println(date1.toString());    // 输出:Wed May 18 21:24:40 CST 2016

    Date date2 = new Date(60000);    // 调用含有一个long类型参数的构造函数

    System.out.println(date2);    // 输出:Thu Jan 0108:01:00 CST 1970

            Date 类的无参数构造方法获取的是系统当前的时间,显示的顺序为星期、月、日、小时、分、秒、年。

            Date 类带 long 类型参数的构造方法获取的是距离 GMT 指定毫秒数的时间,60000 毫秒是一分钟,而 GMT(格林尼治标准时间)与 CST(中央标准时间)相差 8 小时,也就是说 1970 年 1 月 1 日 00:00:00 GMT 与 1970 年 1 月 1 日 08:00:00 CST 表示的是同一时间。

            因此距离 1970 年 1 月 1 日 00:00:00 CST 一分钟的时间为 1970 年 1 月 1 日 00:01:00 CST,即使用 Date 对象表示为 Thu Jan 01 08:01:00 CST 1970。

    2. 常用方法

        Date 类提供了许多与日期和事件相关的方法,其中常见的方法如下表所示。

    例 1

            下面使用一个实例来具体演示 Date 类的使用。假设,某一天特定时间要去做一件事,而且那个时间已经过去一分钟之后才想起来这件事还没有办,这时系统将会提示已经过去了多 长时间。具体的代码如下:

    import java.util.Date;

    import java.util.Scanner;

    public class Test11 {

        public static void main(String[] args) {

            Scanner input = new Scanner(System.in);

            System.out.println("请输入要做的事情:");

            String title = input.next();

            Date date1 = new Date(); // 获取当前日期

            System.out.println("[" + title + "] 这件事发生时间为:" + date1);

            try {

                Thread.sleep(60000);// 暂停 1 分钟

            } catch (InterruptedException e) {

                e.printStackTrace();

            }

            Date date2 = new Date();

            System.out.println("现在时间为:" + date2);

            if (date2.before(date1)) {

                System.out.println("你还有 " + (date2.getTime() - date1.getTime()) / 1000 + " 秒需要去完成【" + title + "】这件事!");

            } else {

                System.out.println("【" + title + "】事情已经过去了 " + (date2.getTime() - date1.getTime()) / 1000 + " 秒");

            }

        }

    }

            在该程序中,分别使用 Date 类的无参数构造方法创建了两个 Date 对象。在创建完第一个 Date 对象后,使用 Thread.sleep() 方法让程序休眠 60 秒,然后再创建第二个 Date 对象,这样第二个 Date 对象所表示的时间将会在第一个 Date 对象所表示时间之后,因此“date2.before(date1)”条件表达式不成立,从而执行 else 块中的代码,表示事情已经发生过。

    运行该程序,执行结果如下所示。

    请输入要做的事情:

    收快递

    【收快递】这件事发生时间为:Fri Oct 12 11:11:07 CST 2018

    现在时间为:Fri Oct 12 11:12:07 CST 2018

    【收快递】事情已经过去了 60 秒

    Java学习视频

    Java基础:Java300集,Java必备优质视频_手把手图解学习Java,让学习成为一种享受

    相关文章

      网友评论

          本文标题:Java干货分享—Date类的使用!

          本文链接:https://www.haomeiwen.com/subject/doniqrtx.html