(一)日期类
【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....... )