1、Date【掌握】
表示时间的类,继承了Object
类,实现了序列化、克隆和比较器接口。
Date不是final的,它是可以被继承的。有一个子类是java.sql.Date
,注意这个类,平时开发不用这个类,由于两个类的名字相同,而且是父子类关系,所以很容易犯错,引包时也要注意。
计算机中表示时间的方式是用一个long
类型保存一个整数,这个整数时从1970年1月1日00:00:00:000开始,每过一毫秒加一,从0时区开始,我们是东8区,所有当这个long值为0时,表示的是8点
1、构造方法
无参构造方法:当前时间。
参数是long的构造方法:表示long
毫秒的时间。
2、常用方法
after
:是否是在某日期时间之后。
before
:是否是在某日期时间之前。
equals
:是否和某日期时间相同。equals方法重写了Object中的方法,比较的是两个对象表示的日期时间是否是同一个。
compareTo
:比较两个时间,如果当前时间比参数时间大,返回正数,如果小,返回负数,如果相同返回0。
getTime
:放回日期时间的毫秒数。
public class TestDate {
public static void main(String[] args) {
Date d1 = new Date();
System.out.println(d1);
Date d2 = new Date(0);
System.out.println(d2);
System.out.println(d1.after(d2));
System.out.println(d1.before(d2));
System.out.println(d1.getTime());
Date d3 = new Date(d2.getTime());
System.out.println(d2 == d3);
System.out.println(d2.equals(d3));
Date d4 = new Date(d1.getTime() + 100000);
System.out.println(d1.compareTo(d2));
System.out.println(d1.compareTo(d4));
System.out.println(d1.compareTo(d1));
}
}
Sat Feb 15 11:13:33 CST 2020
Thu Jan 01 08:00:00 CST 1970
true
false
1581736413409
false
true
1
-1
0
2、DateFormat【掌握】
DateForma
t是日期格式类,它是一个抽象类,是不能被实例化对象的。在DateFormat
中定义了很多属性和方法,为它的子类服务。SimpleDateFormat
是DateFormat
的子类,它是一个可以被实例化的类,一般日期格式化时都用SimpleDateFormat
。
1、构造方法
有一个字符串参数的构造方法,这个字符串表示格式化的规则
2、常用方法
format
(日期对象):将一个日期对象格式化成一个字符串,格式化的规则是创建时传入的字符串。
parse(String)
:将字符串按照指定的格式转化成一个日期对象。
3.格式化规则
public class TestDateFormat {
public static void main(String[] args) throws ParseException {
DateFormat dfDate2Str = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
String dateStr = dfDate2Str.format(new Date());
System.out.println(dateStr);
DateFormat dfStr2Date = new SimpleDateFormat("yyyy-MM-dd");
Date strDate = dfStr2Date.parse("2020-02-15");
System.out.println(strDate);
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d = df.parse("2020-02-15 13:13:13");
System.out.println(d);
String str = df.format(new Date());
System.out.println(str);
}
}
3、Calendar【了解】
Calendar
是一个用于处理日期和时间的类。它提供了许多方法来获取和设置日期、时间以及执行日期和时间的计算操作。Calendar类是一个抽象类,通过调用其静态方法getInstance()
来获取一个Calendar
对象的实例。
Calendar常用方法及示例
public static void main(String[] args){
Calendar calendar = Calendar.getInstance();
System.out.println("年:"+calendar.get(Calendar.YEAR));
System.out.println("月:"+(calendar.get(Calendar.MONTH) + 1));
System.out.println("日:"+calendar.get(Calendar.DAY_OF_MONTH));
System.out.println("时:"+calendar.get(Calendar.HOUR_OF_DAY));
System.out.println("分:"+calendar.get(Calendar.MINUTE));
System.out.println("秒:"+calendar.get(Calendar.SECOND));
System.out.println("星期:"+calendar.get(Calendar.DAY_OF_WEEK));
}
年:2024
月:7
日:9
时:14
分:43
秒:7
星期:3