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