一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第16天,点击查看活动详情。
哈喽,各位小伙伴们好,我是喵手。
今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流学习,互相学习,才能成长的更快,对吧。
我是一名java开发,所以日常接触到最多的就是java啦,所以我趁自己有空,就来好好回忆,把自己学到的会的,进行输出,不图什么有回报,只想能帮助到更多的小伙伴,就好。
小伙伴们在批阅的过程中,如果觉得文章不错,欢迎点赞、收藏、关注哦。三连即是对喵手我创作道路上最好的鼓励与支持!
一、前言
上一期我们是讲了Object类对吧,不知道你们对它所提供的方法掌握的如何?如果还未完全吸收,可以再线下多练练,好不好.
- Object类的toString()方法
- Object类的equals()方法
这一期,我们要来学习新知识啦,日期时间类。
顾名思义,就是java也是提供了对时间相关的工具类,比如:java.util.Date 类。这个时间工具类,时间精确到毫秒。
二、正文
但是Date类中随着jdk的升级,很多方法都已经过时了。
所以我们简单学习一下它的Date()方法吧。这个会经常使用到,比如你在实际开发中,获取当前系统时间,你可以这么做:
new Date()就能获取到当前系统时间,在它获取到的Date类型上.getTime(),返回的就是毫秒数。默认返回的是13位数字,单位是毫秒,也就是所称的时间戳。
比如实际场景,你就可以直接对属性进行赋值。
log.setOperateTime(new Date());
然后除了直接new Date()外,其实你还可以对它进行传参,请看下方Date源码:
public Date() { /* compiled code */ }
public Date(long date) { /* compiled code */ }
对上述源码进行解读:
- Date():分配一个Date对象并初始化,表示自动分配它的时间(单位:毫秒)
- Date(long date):分配一个Date对象并初始化此对象,表示从标准基准时间来指定毫米数。(标准基准时间都是从1970年1月1日算起)
但是我们是属于东八区,所以我们的基准时间应该加上八时,即1970年1月1日8时0分0秒。
对于上述总而言之,使用无参构造函数,可以自动获取当前系统时间;指定long类型的有参构造函数,可以指定获取该数字的毫秒时刻。
三、实例演示
1、Date()
可能我上述讲的都是篇概念的东西,文绉绉的,不是很容易理解,这没关系,我接下来就给大家实例演示一下:
1、获取当前系统时间并打印:
@Test
public void test() {
//创建日期对象,获取当前系统时间。
System.out.println(new Date());
}
控制台输出:
Sat Apr 16 21:04:00 CST 2022
你们可以看到,控制台打印了当前时间对不对,这获取到的就是CST时间,即在中国被称为中国的标准时间。
那我们可以在它的结果的基础上看看还能有啥方法,奥有一个,上述提到的.getTime()函数,它是干啥用的呢?
我们来控制台打印一下试试,看看输出的是不是一个从1970年1月1日8时开始算起的毫秒数?我们来验证一下好不好?
具体演示代码如下:
@Test
public void test() {
//创建日期对象,获取当前系统时间。
Date date = new Date();
System.out.println(date.getTime());
}
控制台输出:
我们验证一下,这个返回的long值是不是此刻的时间,我们随便找一个时间戳转时间的在线工具验证一下好吧。
我们将控制台输出的时间戳,粘贴到填写时间戳的位置上, 然后单位选择毫秒,然后点击一下转换,可以看看时间是否与当前时间一致。
结果很明显, 就是刚才的系统时间。nice!
2、Date(long date)
说起它的话,那就是通过指定一个参数然后调用,看看获取到的是什么?
具体演示代码如下:
@Test
public void test1() {
//创建日期对象,获取当前系统时间。
Date date = new Date(new Date().getTime());
System.out.println(date);
}
控制台输出:
可以看懂我在玩啥不,如果没看懂,那我可以再给你举个实例,你结合起来看。
@Test
public void test1() {
System.out.println(new Date());
//创建日期对象,获取当前系统时间。
Date date = new Date(new Date().getTime());
System.out.println(date);
}
控制台输出:
我是将获取到的当前系统时间戳再通过Date的有参构造函数进行指定获取,跟你直接通过无参构造函数获取当前系统时间必须是一致的。
所以你也可以查看下当你设置 long l= 0L,看看输出的是什么?
@Test
public void test2() {
System.out.println(new Date(0L));
}
控制台输出:
输出的是1970年1月1日8时0分0秒,这也就验证了所有的时间戳都是从那一刻开始算起的。这样讲你们听明白了没有?
... ...
好啦,以上就是Date类的基本使用啦,如果对文中的任何知识点有疑问,欢迎评论区评论留言呀,我看见都会一一解答的。
四、结尾
教学是结束了,但是有些话不知我但讲不当讲,啊哈哈, 可我还是想说给你们听听。如下是我很喜欢的一句话,我打算送给你们,希望我们都能变得更好更优秀。
学习不分先后,知识不分多少;事无巨细,当以虚心求教;三人行,必有我师焉!!!
wished for you successed !!!
-------------------------------------------
⭐️若喜欢我,就请关注我叭。
⭐️若对您有用,就请点赞叭。
⭐️若有疑问,就请评论留言告诉我叭。
-------------------------------------------