Java重点 | Date类

举报
几分醉意. 发表于 2022/10/25 18:04:03 2022/10/25
【摘要】 本文详细的介绍了Date类相关的内容,并以举例的方式,带你深入浅出的理解Date类。

Date类

java.util.Date:表示日期和时间的类,Date 表示特定的瞬间,精确到毫秒。

毫秒值的概念与作用

毫秒:千分之一秒,1000毫秒=1。
秒特定的瞬间:一个时间点,一刹那时间
例如:
2088-08-08 09:55:33:333瞬间
2088-08-0809:55:33:334瞬间
2088-08-08 09:55:33:335瞬间

毫秒值的作用:可以对时间和日期进行计算。
2022-01-01到2088-01-01中间一共有多少天?
可以日期转换为毫秒进行计算,计算完毕,在把毫秒转换为日期。

把日期转换为毫秒:
当前的日期:2022-08-28
时间原点(0毫秒):1970年1月1日00:00:00(英国格林威治)
就是计算当前日期到时间原点之间一共经历了多少毫秒(374267540068L)
注意:
中国属于东八区,会把时间增加8个小时1970年1月1日08:00:00

把毫秒转换为日期:
1天=24x60x60=86400秒=86400x1000=86400000毫秒

构造方法

学习类都是一个过程,先学习这个类的构造方法;有了构造方法后,就可以创建对象,然后通过对象调用它里面的成员方法。

无参构造

public static void main(String[] args) {
        //Data的空参数构造方法-Data()获取当前系统的时间(精确到毫秒的系统当前时间)
        Date date = new Date();
        //java.util.Date类的toString()方法已经被重写了
        //所以直接输出对象,不是这个对象的内存地址,而是一个日期字符串
        System.out.println(date); //输出:Sun Aug 28 21:18:47 CST 2022
    }

有参构造

public static void main(String[] args) {
        // Date类的带参数构造方法
        //Date(long date) :传递毫秒值转换为Date日期
        Date date = new Date(0L); //把参数里面的毫秒转成对应的日期
        System.out.println(date); //输出:Thu Jan 01 08:00:00 CST 1970

        Date date1 = new Date(1620543792746L); //把参数里面的毫秒转成对应的日期
        System.out.println(date1); //输出:Sun May 09 15:03:12 CST 2021
    }

成员方法getTime()

public static void main(String[] args) {
        // Long getTime()把日期转换为毫秒值(相当于System.currentTimeMillis()方法)
        // 返回自1970年 1月一日 00:00:00 到当前系统时间一共经历了多少毫秒
        Date date = new Date();
        long time = date.getTime();
        System.out.println(time); //1661693372684
    }

currentTimeMillis方法

此方法是System类的一个方法,作用和getTime()一样,返回自1970年 1月一日 00:00:00
到当前系统时间一共经历了多少毫秒。

public static void main(String[] args) {
        Long TimeMillis = System.currentTimeMillis();
        System.out.println(TimeMillis); //输出:1661693849165
    }

那么这个方法可以用来干什么呢?
看的出来,经过测试,下列代码空循环一亿次,用了3毫秒

public static void main(String[] args) {
        //统计一个方法的耗时
        //在调用目标方法之前记录一个毫秒数
        Long TimeMillis = System.currentTimeMillis();
        //这里调用方法
        print();
        //在执行完目标方法之后记录一个毫秒数
        Long end = System.currentTimeMillis();

        System.out.println("耗费时长:"+(end-TimeMillis)+"毫秒"); //输出:耗费时长:3毫秒
    }

    public static void print(){
        for (int i = 0; i < 100000000; i++) {
            
        }
    }

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。