Java常用类03 Date类及其相关类
四. Date及其相关类
-
Java将1970年1月1日00:00:00定为基准时间,每个度量单位是毫秒(1秒的千分之一)。使用long整型变量来表示时间。从基准时间往前往后几亿年的时间都可以表示。
-
可以使用以下的方法获得现在时刻的"时刻数值"。
long now = System.currentTimeMillis();
这个"时间数值"是所有时间类的核心,年月日都是根据这个"数值"计算出来的。
-
Date类:
使用如下方法新建一个Date对象:
Date d1 = new Date(); //默认构造方法,新建的对象为调用时间 Date d2 = new Date(2000); //使用一个长整形
Date类的无参构造方法源码如下:
public Date() { this(System.currentTimeMillis()); }
发现他也是调用了
System.currentTimeMillis();
这个方法,所以默认构造是当前时间。
date类的常用方法:
方法名 方法作用 after 测试该日期是否在指定日期之后 before 测试该日期是否在指定日期之前 getTime 返回从1970 01.01 00:00:00以来此Date对象的表示的毫秒数 toString 返回为对应格式的字符串 equals 比较两个日期是否相等 其中,before和after方法可以通过源码得知,他们也是借由比较时间数值来得到结果的,可以自己翻阅源码的相关内容。
其余Date类还有很多方法,但是多数方法已经被废弃了,不建议使用,有兴趣的可以翻阅源码或者JDK手册了解。
-
DateFormat类和SimpleDateFormat类
DateFormat类的作用:把事件对象转化为指定格式的字符串。反之,把指定格式的字符串转化为时间对象。他是一个抽象类,一般使用它的子类SimpleDateFormat类来实现。
构建格式化时间的字符遵循格式化字符的含义,他们的具体含义如下图:
通过如下的实例来了解他们的使用方法:
package konoha.commonClass.dateEtc; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class ClassDateFormat { public static void main(String[] args) throws ParseException { //使用DateFormat抽象类的子类SimpleDateFormat格式化输出Date对象 DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); Date date1 = new Date(); String str1 = df1.format(date1); System.out.println(str1); //使用DateFormat抽象类的子类SimpleDateFormat格式化解析字符串构造Date对象 DateFormat df2 = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒"); Date date2 = df2.parse("2020年12月31日 20时32分45秒"); System.out.println(date2); //其他的一些使用方法 //使用"D"格式符获取当前是这一年的第多少天 DateFormat df3 = new SimpleDateFormat("D"); System.out.println(df3.format(new Date())); } }