Java8新特性之时间

2022-03-23 20:14:15 浏览数 (1)

JAVA8新特性

时间

LocalDate LocalTime LocalDateTime是不可变对象 使用ISO-8601日历系统

ISO-8601是国际标准化组织制定的现代公民的日期和时间的表示法

获取当前时间日期

代码语言:javascript复制
public class TestLocalDateTime {
    //1.localDate 日期   LocalTime时间   LocalDateTime日期和时间
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        System.out.println(now);
    }
}

输出

2021-08-14T14:55:43.503

指定日期时间

代码语言:javascript复制
LocalDateTime of = LocalDateTime.of(2021, 8, 14, 14, 56, 40);
System.out.println(of);

输出

2021-08-14T14:56:40

当前日期加上一个月

代码语言:javascript复制
LocalDateTime months = now.plusMonths(1);
System.out.println(months);

输出

2021-09-14T14:58:17.312

当前日期减去五天

代码语言:javascript复制
//减5天
LocalDateTime localDateTime = now.minusDays(5);
System.out.println(localDateTime);

输出

2021-08-09T14:59:43.950

获取年月日时分秒

代码语言:javascript复制
//获取年月日时分秒
System.out.println(localDateTime);
System.out.println(now.getYear());
System.out.println(now.getMonth().getValue());
System.out.println(now.getDayOfMonth());
System.out.println(now.getHour());
System.out.println(now.getMinute());
System.out.println(now.getSecond());
代码语言:javascript复制
输出
2021
8
14
15
5
35

Instant :时间戳(以Unix元年:1970年1月1日0时0分0秒 到 当某个时间的毫秒值)

代码语言:javascript复制
 public class InstantTest {
        public static void main(String[] args) {
            //获取时间戳
            Instant now = Instant.now();
            System.out.println(now);
        }
    }

输出

2021-08-14T07:10:30.049Z

默认获取的是UTC时区的时间 跟当前时间不符

代码语言:javascript复制
//偏移八个时区的时间
OffsetDateTime offsetDateTime = now.atOffset(ZoneOffset.ofHours(8));
System.out.println(offsetDateTime);

输出

2021-08-14T15:48:29.674 08:00 就是当前时间

代码语言:javascript复制
//在1970年1月1日0时0分0秒 的基础上加上60秒
Instant instant = Instant.ofEpochSecond(60);
System.out.println(instant);

输出 过了一分钟

1970-01-01T00:01:00Z

Period:计算两个日期之间的间隔

代码语言:javascript复制
LocalDate now = LocalDate.now();
LocalDate of = LocalDate.of(2021, 9, 1);
Period between = Period.between(now, of);
System.out.println(between);

输出

P18D

Duration : 计算两个时间之间的间隔

代码语言:javascript复制
public class Interval {
    public static void main(String[] args) throws InterruptedException {
        Instant now1 = Instant.now();
        Thread.sleep(100);
        Instant now2 = Instant.now();
        System.out.println(Duration.between(now1, now2));
    }
}

输出

PT0.1S

0 人点赞