java8 时间处理速查笔记

java8 日期时间

介绍

  • clock: 代替System.currentTimeMillis()TimeZone.getDefault()
  • Duration: 日期持续时间
  • Instant:瞬时实例
  • LocalDate:本地日期 不包含具体时间
  • LocalDateTime :合了日期和时间 但不包含时差和时区
  • LocalTime: 本地时间 不包含日期
  • MonthDay: 可以获得可以从月和日派生的任何字段,例如四分之一年份
  • OffsetDateTime: 具有偏移量的日期时间的不可变表示。 该类存储所有日期和时间字段,精度为纳秒,以及与UTC /格林威治的偏移量。
  • OffsetTime
  • Period: 月和日为单位建立数量或时间量
  • Year
  • YearMonth
  • ZonedDateTime: 完整的日期时间,包含时区和相对UTC
  • ZoneId
  • ZoneOffset

常用时间处理

public void test(){
    DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
    // 获取当前日期
    LocalDate now = LocalDate.now(); //2021-05-06
    // 日期转为String
    String today = now.format(dateTimeFormatter); //2021-05-06
    // String 转为日期
    String date = "2020-01-01";
    LocalDate parse = LocalDate.parse(date, dateTimeFormatter);
    // 时间加减
    LocalDate localDate = now.plusMonths(3); //2021-08-06
    LocalDate localDate1 = now.minusMonths(3); //2021-02-06
    // 一周前的今天
    System.out.println(now.minusWeeks(1));
    System.out.println(now.minus(1, ChronoUnit.WEEKS));
    // 计算两日期的天数和月数
    String date1 = "1955-02-24";
    String date2 = "2011-10-05";
    LocalDate birthday = LocalDate.parse(date1);
    LocalDate death = LocalDate.parse(date2);
    Period between = Period.between(birthday, death);
    System.out.println(between.getDays());
  System.out.println(between.getYears()+"年"+between.getMonths()+"月"+between.getDays()+"天");//56年7月11天
    // 是否闰年
    System.out.println(now.isLeapYear());
}
posted @ 2021-05-06 23:10  混吃等你  阅读(58)  评论(0编辑  收藏  举报