java.time 日期、时间相关处理

  1. LocalDate:处理日期,不包含时间部分。

    • 创建LocalDate对象:
      LocalDate date1 = LocalDate.of(2023, 6, 28); // 2023-06-28
      LocalDate date2 = LocalDate.parse("2023-06-28"); // 解析字符串为日期对象
      
    • 获取日期的年、月、日等部分:
      int year = date1.getYear();
      Month month = date1.getMonth();
      int dayOfMonth = date1.getDayOfMonth();
      
    • 日期的比较:
      LocalDate today = LocalDate.now();
      boolean isBefore = date1.isBefore(today);
      boolean isAfter = date1.isAfter(today);
      boolean isEqual = date1.isEqual(today);
      
    • 日期的加减操作:
      LocalDate futureDate = date1.plusDays(7); // 加7天后的日期
      LocalDate pastDate = date1.minusMonths(1); // 减1个月后的日期
      
  2. LocalDateTime:处理日期和时间。

    • 创建LocalDateTime对象:
      LocalDateTime dateTime1 = LocalDateTime.of(2023, 6, 28, 14, 30); // 2023-06-28T14:30
      LocalDateTime dateTime2 = LocalDateTime.parse("2023-06-28T14:30"); // 解析字符串为日期时间对象
      
    • 获取日期时间的各个部分:
      int year = dateTime1.getYear();
      Month month = dateTime1.getMonth();
      int hour = dateTime1.getHour();
      
    • 日期时间的比较:
      LocalDateTime now = LocalDateTime.now();
      boolean isBefore = dateTime1.isBefore(now);
      boolean isAfter = dateTime1.isAfter(now);
      boolean isEqual = dateTime1.isEqual(now);
      
    • 日期时间的加减操作:
      LocalDateTime futureDateTime = dateTime1.plusHours(3); // 加3小时后的日期时间
      LocalDateTime pastDateTime = dateTime1.minusDays(1); // 减1天后的日期时间
      
  3. Period:处理日期之间的时间段。

    • 计算两个日期之间的周期:
      LocalDate startDate = LocalDate.of(2023, 6, 1);
      LocalDate endDate = LocalDate.of(2023, 6, 30);
      Period period = Period.between(startDate, endDate);
      int days = period.getDays(); // 29
      int months = period.getMonths(); // 0
      
    • 日期加减操作中也可以使用Period对象来指定时间段。
  4. Duration:处理时间之间的持续时间。

    • 计算两个时间点之间的持续时间:
      LocalDateTime startDateTime = LocalDateTime.of(2023, 6, 28, 10, 0);
      LocalDateTime endDateTime = LocalDateTime.of(2023, 6, 28, 12, 0);
      Duration duration = Duration.between(startDateTime, endDateTime);
      long hours = duration.toHours(); // 2
      
    • 同样可以通过Duration对象进行时间的加减操作。
  5. TemporalAdjusters:用于调整日期,如获取下一个周一、本月第一天等。

    LocalDate nextMonday = LocalDate.now().with(TemporalAdjusters.next(DayOfWeek.MONDAY));
    LocalDate firstDayOfMonth = LocalDate.now().with(TemporalAdjusters.firstDayOfMonth());
    
  6. DateTimeFormatter:日期时间对象与字符串之间的格式化和解析。

    LocalDateTime dateTime = LocalDateTime.now();
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    String formattedDateTime = dateTime.format(formatter);
    LocalDateTime parsedDateTime = LocalDateTime.parse("2023-06-28 14:30:00", formatter);
    
  7. ZoneId 和 ZonedDateTime:处理时区相关的日期和时间。

    ZonedDateTime zonedDateTime = ZonedDateTime.now(ZoneId.of("America/New_York"));
  • 23
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值