【LSP】Java工具类——日期相关的类

编程开发   © 文章版权由 admin 解释,禁止匿名转载

#楼主# 2020-10-10

前言
在日常的开发工作当中,我们经常需要用到日期相关的类(包括日期类已经处理日期的类),所以,我就专门整理了一篇关于日期相关的类,希望可以帮助到大家。

正文
一、日期类介绍
在 Java 里面,操作日期的类主要有以下几个类:

二、Date类
这是最基础的一个日期类,其中Date类重名的有4个相关的类,这四个类所属的包都不相同,这里我们讲的是位于java.util包下的 Date 类。

1、构造方法
Date 类有6个构造方法,其中后面5个带有 @Deprecated 注解的都已经废弃了(不推荐用),主要用的是前面2个构造方法。

public Date()
public Date(long date)
@Deprecated
public Date(String s)
@Deprecated
public Date(int year, int month, int date)
@Deprecated
public Date(int year, int month, int date, int hrs, int min)
@Deprecated
public Date(int year, int month, int date, int hrs, int min, int sec)
既然有构造方法,其实我们可以通过new关键字实例化对象来获取时间,通过源码我们可以发现,无参构造方法其实是用了 System.currentTimeMillis() 方法获取当前系统时间然后通过方法调用将此时间传递给了 long 型有参方法进行私有成员变量赋值。

public Date() {
this(System.currentTimeMillis());
}
public Date(long date) {
fastTime = date;
}
//返回当前系统时间与计算机元年()之间的毫秒值的差值
//计算机元年:1970-1-1 00:00:00
//中国时间差8个小时
long l = System.currentTimeMillis();
System.out.println(l);//1587349600847
我们可以看到输出 Date 输出的格式是一个很奇怪的格式,不应该是 hashCode码 吗?其实不是,因为 Date 类重写了 Object 的toString()方法,然后日期的格式是根据美国人的格式来命名输出的,所以有点奇怪。

//输出格式叫格格林威治时间格式
Date date = new Date();
System.out.println(date);//Mon Apr 20 10:33:49 CST 2020
//Date time = new Date("");

2、常用方法
Date 类里面的方法也大部分都是废弃的,不建议使用的,所以就介绍几个常用的方法

before()方法,判断一个时间是否在另外一个时间之前,返回值是boolean类型的。
Date date1 = new Date(1587350029179L);//前面时间
Date date2 = new Date(1587350029192L);//后面时间
boolean before = date1.before(date2);//判断date1的时间是否在date2之前
System.out.println(before);//true
after()方法,判断一个时间是否在另外一个时间之后,返回值是boolean类型的。
Date date1 = new Date(1587350029179L);//前面时间
Date date2 = new Date(1587350029192L);//后面时间
boolean after = date1.after(date2);//判断date1的时间是否在date2之后
System.out.println(after);//false

成为第一个回答人

评论

登录后才可发表内容
  • 主题

    124

  • 帖子

    0

  • 关注者

    0

Copyright © 2019 凯特网.   Powered by HYBBS 2.3.4  

Runtime:0.0832s Mem:2051Kb