Java如何使用TemporalAdjuster操作LocalDate对象?
在前面的示例中,我们LocalDate使用诸如plusMonths()或的方法通过按天,月,年对日期对象的值进行加或减来操纵的值minusDays()。或者使用类似withYear()或的方法更改日期对象的年或月withMonth()。
但是有些时候我们想要操纵日期对象,以便获得月的第一天或月的最后一天。我们要操纵日期值,以将日期提前到当天或当年最后一天之后的第一个星期一。
要以这种方式操作日期对象,我们可以使用with()方法并将TemporalAdjuster对象作为参数传递。幸运的是,日期和时间API已经提供了一些常用的TemporalAdjuster。这些TemporalAdjuster是作为静态工厂方法提供的,我们可以在java.time.temporal.TemporalAdjusters类中找到它们。
以下示例是使用TemporalAdjuster/TemporalAdjusters类操纵日期对象的代码段。
package org.nhooo.example.datetime;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.temporal.TemporalAdjusters;
public class DateManipulationWithTemporalAdjuster {
public static void main(String[] args) {
LocalDate date = LocalDate.now();
System.out.println("Current date = " + date);
LocalDate date1 = date.with(TemporalAdjusters.firstDayOfMonth());
System.out.println("First day of month = " + date1);
LocalDate date2 = date.with(TemporalAdjusters.lastDayOfMonth());
System.out.println("Last day of month = " + date2);
LocalDate date3 = date.with(TemporalAdjusters.next(DayOfWeek.MONDAY));
System.out.println("Next Monday = " + date3);
LocalDate date4 = date.with(TemporalAdjusters.lastDayOfYear());
System.out.println("Last day of year = " + date4);
}
}代码段的结果是:
Current date = 2016-03-06 First day of month = 2016-03-01 Last day of month = 2016-03-31 Next Monday = 2016-03-07 Last day of year = 2016-12-31
下表显示了TemporalAdjusters该类提供的静态工厂方法的完整信息。
热门推荐
10 对女友的简短祝福语
11 婆婆生日祝福语短语简短
12 祖国七十华诞简短祝福语
13 他舅生日祝福语简短
14 小姨生日祝福语简短独特
15 下雨开工吉祥祝福语简短
16 团队文案祝福语简短励志
17 职场祝福语大全 简短精辟
18 参加婚礼祝福语大全简短