Period类
Period
类用于使用 ISO-8601 周期格式 PnYnMnD 和 PnW 中基于日期的值来表示时间量。
例如,P20Y2M25D
字符串表示 20 年 2 个月和 25 天。
这段时间可以通过不同的方式获得。
Period.between()
大部分Period
用于表示两个日期之间的时间段(例如,两个LocalDate
实例之间)。
LocalDate startLocalDate = LocalDate.of(2020, 3, 12); LocalDate endLocalDate = LocalDate.of(2020, 7, 20); Period periodBetween = Period.between(startLocalDate, endLocalDate); System.out.println(periodBetween); // P4M8D - 4 months and 8 days System.out.println(periodBetween.getDays()); //8 System.out.println(periodBetween.getMonths()); //4 System.out.println(periodBetween.getYears()); //0 System.out.println(periodBetween.get(ChronoUnit.DAYS)); //8
Period.ofDays()
Period
类使用以下方法来表示不同单位的时间段:
- ofDays(int days) - 表示天数的周期。
- ofMonths(int Months) - 代表月份数的期间。
- ofWeeks(int week) - 表示周数的周期。
- ofYears(int years) - 代表若干年的期间。
Period fromDays = Period.ofDays(150); // 150 days Period fromMonths = Period.ofMonths(4); // 4 months Period fromYears = Period.ofYears(10); // 10 years Period fromWeeks = Period.ofWeeks(15); // 15 weeks
Period.of()
使用of(int years, int Month, int days)
,我们可以得到一个基于年、月和日的实例。
//20 years, 3 months and 20 days Period periodFromUnits = Period.of(20, 3, 20);
Period.parse()
Period
可以从包含 ISO-8601 周期格式的 String
中获得。
//20 years, 3 months and 20 days Period periodFromString1 = Period.parse("P20Y3M20D"); //365 Days Period periodFromString2 = Period.parse("P365D"); //52 Weeks Period periodFromString3 = Period.parse("P52W");
修改 Period值
我们可以从给定的“Period”对象中添加或者减去一段时间。
支持加减的方法有:
- plus(period) - 返回添加了指定期间的给定期间的副本。
- plusYears() - 返回添加了指定年份的给定期间的副本。
- plusMonths() - 返回添加了指定月份的给定期间的副本。
- plusDays() - 返回添加了指定天数的给定时间段的副本。
- minus(period) - 返回给定期间减去指定期间的副本。
- minusYears() - 返回给定期间减去指定年份的副本。
- minusMonths() - 返回给定期间减去指定月份的副本。
- minusDays() - 返回给定期间减去指定天数的副本。
- multipliedBy(scalar) - 返回一个新实例,该实例中的每个元素都乘以指定的标量。
Period period = Period.ofDays(5); Period periodDaysAdded = period.plus(5); Period periodPlus1Year = period.plusYears(1L);
www. On IT Road .com
获取Period值
Period 值可以通过 getter 方法获得:
- Period.getDays() - 获取此期间的天数。
- Period.getMonths() - 获取此期间的月数。
- Period.getYears() - 获取该时期的年数。
- Period.get(TemporalUnit unit) - 获取请求单位的值。请注意,支持的单位是
YEARS、MONTHS 和 DAYS
。所有其他单元抛出一个UnsupportedTemporalTypeException
。
LocalDate startLocalDate = LocalDate.of(2020, 3, 12); LocalDate endLocalDate = LocalDate.of(2020, 7, 20); Period periodBetween = Period.between(startLocalDate, endLocalDate); System.out.println(periodBetween.getDays()); //8 System.out.println(periodBetween.getMonths()); //4 System.out.println(periodBetween.getYears()); //0 System.out.println(periodBetween.get(ChronoUnit.DAYS)); //8 //Throws UnsupportedTemporalTypeException System.out.println(periodBetween.get(ChronoUnit.WEEKS));
日期:2020-09-17 00:09:40 来源:oir作者:oir