java比较日期6_6.Java8新特性 - 时间与日期API

一、时间日期类

Java 8 在 java.time 包下提供了很多新的 API。以下为两个比较重要的 API:

Local(本地) − 简化了日期时间的处理,没有时区的问题。

Zoned(时区) − 通过制定的时区处理日期时间。

二、本地化时间日期 API

LocalDate、LocalTime 和 LocalDateTime 类可以处理没有时区问题的情况

获取本地时间

LocalDate localDate = LocalDate.now();

LocalDateTime localDateTime = LocalDateTime.now();

LocalTime localTime = LocalTime.now();

System.out.println(localDate);

System.out.println(localDateTime);

System.out.println(localTime);

//输出: 2018-11-03

//2018-11-03T11:48:53.609

//11:48:53.609

对时间的操作

LocalDateTime localDateTime = LocalDateTime.now();

//增加5年

LocalDateTime localDateTime1 = localDateTime.plusYears(5);

System.out.println(localDateTime1);

//减少4个月

LocalDateTime localDateTime2 = localDateTime.minusMonths(4);

System.out.println(localDateTime2);

//获取月份

int monthValue = localDateTime.getMonthValue();

System.out.println(monthValue);

//获取周

DayOfWeek dayOfWeek = localDateTime.getDayOfWeek();

System.out.println(dayOfWeek);

//获取年份

int year = localDateTime.getYear();

System.out.println(year);

//2023-11-03T15:10:52.405

//2018-07-03T15:10:52.405

//11

//SATURDAY

//2018

计算间隔

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

LocalDateTime localDateTime = LocalDateTime.now();

Thread.sleep(500);

LocalDateTime localDateTime1 = LocalDateTime.now();

Duration duration = Duration.between(localDateTime,localDateTime1);

System.out.println(duration.toMillis());

//输出:505

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

LocalDate localDate = LocalDate.now();

LocalDate localDate1 = LocalDate.of(2008,8,8);

Period period = Period.between(localDate1,localDate);

System.out.println(period.getYears()+":"+period.getMonths()+":"+period.getDays());

//输出:10:2:26

格式化时间或日期

DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-mm-dd:hh:mm:ss");

LocalDateTime localDateTime = LocalDateTime.now();

String format = dateTimeFormatter.format(localDateTime);

System.out.println(format);

//输出:2018-44-03:03:44:22

三、使用时区的时间日期API

//获取时区为 Europe/Paris 的时间

LocalDateTime localDateTime = LocalDateTime.now(ZoneId.of("Europe/Paris"));

System.out.println(localDateTime);

//组合一个带有时区的日期

ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.of("Europe/Paris"));

System.out.println(zonedDateTime);

//获取当前时区

ZoneId zoneId = ZoneId.systemDefault();

System.out.println(zoneId);

//输出:2018-11-03T08:51:34.629

//2018-11-03T08:51:34.629+01:00[Europe/Paris]

//Asia/Shanghai

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值