(一)日期类

【Date】

(1)导入的包为“import java.util.Date;”

(2)自JDK1.1版本之后,日期类中的许多构造方法都被废弃了。只保留了无参构造和一个参数为long类型的有参构造。

大家可以发现当我向日期类中传入字符串的时候,Date会被划上黑线以及会报出警告。根据提示,可以发现这个方法过期了。

过期的方法是可以使用的,但不推荐使用。下面就只为大家介绍两个未过期的方法。

Date d = new Date();

输出的是当前操作系统的时间

Date d1 = new Date(100000L);

输出的是计算机元年(1970年1月1日0时0分)+ 传入的参数值(单位秒) 的时间。

 

【SimpleDateFormat】

当我们对日期的格式有要求时,我们可以用SimpleDateFormat类,进行转化。

(1)将字符串转化为日期

//设置传入字符串的格式

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

//调用parse()方法
Date d = sdf.parse("2019-08-16 8:15:30");
System.out.println(d);

(2)将日期转化为字符串

//设置日期格式

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

//获取当前时间
Date date = new Date(); 

调用format()方法
String str = sdf.format(date);
System.out.println(str);

【常用字符】

y:年                                M :月                                     

d:日                                H:时(0-23)                                         

h:时(1-24)m:分    s:秒                                     

S:毫秒                         a:上下午                                                 

E:星期几

 

(二)日历类

日历类:可以获取指定时间内的信息(年 月 日 时 分 秒 周几 第几周 一年的第几天)

使用日历类,可以获得任何一天的详细信息。它的功能很强大。

public static void main(String[] args) {
		// 获取日历对象
		Calendar c = Calendar.getInstance();
		// 年
		System.out.println(c.get(Calendar.YEAR));
		// 月
		System.out.println(c.get(Calendar.MONTH) + 1);
		// 日
		System.out.println(c.get(Calendar.DAY_OF_MONTH));
		// 时
		System.out.println(c.get(Calendar.HOUR));
		// 分
		System.out.println(c.get(Calendar.MINUTE));
		// 秒
		System.out.println(c.get(Calendar.SECOND));
		// 周几
		System.out.println(c.get(Calendar.DAY_OF_WEEK));
		// 一年的第几天
		System.out.println(c.get(Calendar.DAY_OF_YEAR));
		// 一个月的第几周
		System.out.println(c.get(Calendar.WEEK_OF_MONTH));
	}

【1】实例化日历类:Calendar c = Calendar.getInstance();

【2】获得当天的详细信息:c.get(Calendar.XXX)

【3】设置日历时间:c.setTime(new Date());可以通过SimpleDateFormat,设置字符串格式,使用parse方法将字符串转化为日期。这样就可以获得任一天的详细信息了。

(三)时间类

在JDK1.8之后对于时间进行更详细的划分,产生了一个新的time包.提供两个类,一个对应日期(年、月、日),一个对应时间(时、分、秒)。

【LocalDate】

获得当前年月日

LocalDate ld = LocalDate.now();

结果:2019-08-16

从结果中,我们可以看出LocalDate,已经为我们封装好了日期的格式。

of()方法可以帮助我们设置日期

ld = ld.of(2019, 9, 16);
System.out.println(ld);

通过plus()、minus()等方法,可以帮助我们对时间进行加减。

        ld = ld.plus(10,ChronoUnit.DAYS);
        System.out.println(ld);
        ld = ld.minus(10,ChronoUnit.YEARS);
        System.out.println(ld);

通过ChronoUnit枚举类型进行设置参数类型

【LocalTime】

获取当前时间,时:分:秒.毫秒

LocalTime lt = LocalTime.now();
        System.out.println(lt);

结果:20:22:04.250

从结果中,我们可以看出LocalTime,已经为我们封装好了时间的格式。

它也可以通过of()方法可以帮助我们设置日期,可以通过plus()、minus()等方法,可以帮助我们对时间进行加减。

设置时 、分、秒

lt = lt.of(12, 15, 50);
System.out.println(lt);

对时间进行加减

lt = lt.plus(20,ChronoUnit.HOURS);

System.out.println(lt);

lt = lt.minus(10,ChronoUnit.HOURS);

System.out.println(lt);

补充:LocalDate只能使用与日期有关的枚举类型(DAYS,YEARS......),LocalTime只能使用与时间相关的枚举类型(HOURS、MINUTES....... )