java8 日期api使用
Posted 分错
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java8 日期api使用相关的知识,希望对你有一定的参考价值。
java8以前对日期的处理不是很方便,想要对日期进行加减,比较两个日期的间隔处理非常繁琐,java8对日期重新实现了一套api,位于java.time包下。
LocalDate 只显示日期
LocalTime 只显示时间
LocalDateTime 既包括日期又包括时间
Instant 时间戳
ZoneId 时区
1 用法:
LocalDate ,LocalTime,LocalDateTime 这几个类的构造方法都是private,但他们都提供了静态的方法来实例化对象。
1.1 of(int year, Month month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond)
of方法可以传入特定的值,构造特定的时间日期:
LocalDate localDate= LocalDate.of(2012,3,2);
LocalTime localTime = LocalTime.of(13, 1, 11);
LocalDateTime localDateTime = LocalDateTime.of(2012, 3, 2,13,1,11);
System.out.println(localDate);
System.out.println(localTime);
System.out.println(localDateTime);
2012-03-02
13:01:11
2012-03-02T13:01:11
1.2 now()
now方法获取系统的当前时间,默认为系统时区,提供了重载的方法now(ZoneId )可以传入指定的时区
1.3 parse()
parse方法可以接受一个时间字符串,和一个格式化模式
2 运算
2.1 每个类都提供了加(plus)减(minus)运算方法,可以很方便的计算前一天后一天
2.2 每个类都提供了判断两个日期先后的方法isAfter,isBefore
2.3 计算两个日期的间隔
Duration between = Duration.between(localDateTime,localDateTime);
2.4 格式化输出
format可以可以接受一个DateTimeFormatter,以给定的格式化为一个字符串
localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))
3 与Date的互相转化
两者转化都是转化为对应的时间戳,通过时间戳去转化
3.1 date 转LocalDate
date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate()
3.2 LocalDate转date
Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant())
以上是关于java8 日期api使用的主要内容,如果未能解决你的问题,请参考以下文章