Date
在jdk1.8之前,java中的日期和时间是一类的,从1.8之后对日期和时间体系重新做了规划,划分出一个新的包 - java.time包,这个包中包含了日期、时间、时区、日历、单位。
Date,是java中最老的日期和时间类,后续退出了很多取代date的类,但是目前位置使用最多的还是Date。
Calendar:jdk1.1提供的日历类。
java.time:1.8之后提供的一个全新的包,将日期和时间进行拆分。
对于Date(),我们可以利用它来获取目前的时间,一般默认就是当前时间,也可以获取指定时间,也能获得指定毫秒值,那么这个毫秒值从何而来,在计算机中一般是以1970-1-1 00:00:00开始到指定的日期的毫秒值。
package com.itheima.date;import java.util.Date;public class DateDemo1 {public static void main(String[] args) {//构建Date对象,如果不指定,默认是当前的系统时间Date d1=new Date();System.out.println(d1);//指定时间Date d2=new Date(100,11,25);System.out.println(d2);//指定毫秒值 1970-1-1 00:00:00开始到指定的日期的毫秒值Date d3=new Date(4343546L);System.out.println(d3);}
}
运行结果:
Calendar
对于Calendar(),这个方法可以用于获取日历对象,也能获取今年是第几周,其有相当多的方法,可以自行查略API文档。
package com.itheima.date;import java.util.Calendar;public class CalendarDemo {public static void main(String[] args) {//获取日历对象Calendar c=Calendar.getInstance();System.out.println(c);//获取这周是今年的第几周int i = c.get(Calendar.WEEK_OF_YEAR);System.out.println(i);}
}
运行结果:
LocalDate
LocalDate()用于表示日期类,不含时间,同样可以表示当前的日期,也可以指定日期,或是指定日期的几周之后还是几周之前,或是判断早晚。
package com.itheima.date;import java.time.LocalDate;
import java.time.temporal.ChronoUnit;public class LocalDemo {public static void main(String[] args) {//用于表示日期类,不含时间//表示当前的日期LocalDate ld=LocalDate.now();System.out.println(ld);//指定时间LocalDate ld2=LocalDate.of(2008,5,19);System.out.println(ld2);//三周之后System.out.println(ld2.plus(3, ChronoUnit.WEEKS));//之前System.out.println(ld2.minus(3,ChronoUnit.WEEKS));//判断早晚System.out.println(ld.isAfter(ld2));//判断闰年System.out.println(ld2.isLeapYear());}
}
运行结果:
事实上,对于Date这类关于时间的API,使用的并不多,使用那些方法应该按需求去文档中查找,一般只需要掌握以上基本方法。