小编Cho*_*hou的帖子

LocalDate减去一个Period得到错误的结果

LocalDate减去a Period(如"28年,1个月和27天"),得到错误的结果.

但减去a Period(只有天数单位,如"10282"天)得到正确的结果.有什么需要注意的吗?

public static void main(String[] args) {
    printAgeAndBirthday(1989, 2, 22);

    printBirthdayFromPeriod(28, 1, 27);
}
  private static void printBirthdayFromPeriod(int years, int months, int days) {
    final Period period = Period.of(years, months, days);
    final LocalDate now = LocalDate.now();
    final LocalDate birthday = now.minus(28, ChronoUnit.YEARS)
            .minus(1, ChronoUnit.MONTHS)
            .minus(27, ChronoUnit.DAYS);

    System.out.println("your birthday is : "+ birthday);//1989-02-19
    System.out.println("your birthday is : "+ now.minusYears(28).minusMonths(1).minusDays(27));//1989-02-19
    System.out.println("your birthday is : "+ now.minus(period));//1989-02-19
    System.out.println("your birthday is : "+period.subtractFrom(now));//1989-02-19
    System.out.println("your birthday is : "+ …
Run Code Online (Sandbox Code Playgroud)

java period java-8 localdate

6
推荐指数
1
解决办法
939
查看次数

标签 统计

java ×1

java-8 ×1

localdate ×1

period ×1