1. TemporalAdjusters

Example to move a date to firstDayOfMonth, firstDayOfNextMonth, next Monday and etc.

TestDate.java
package com.mkyong.time;

import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.temporal.TemporalAdjusters; public class TestDate { public static void main(String[] args) { LocalDate localDate = LocalDate.now();
System.out.println("current date : " + localDate); LocalDate with = localDate.with(TemporalAdjusters.firstDayOfMonth());
System.out.println("firstDayOfMonth : " + with); LocalDate with1 = localDate.with(TemporalAdjusters.lastDayOfMonth());
System.out.println("lastDayOfMonth : " + with1); LocalDate with2 = localDate.with(TemporalAdjusters.next(DayOfWeek.MONDAY));
System.out.println("next monday : " + with2); LocalDate with3 = localDate.with(TemporalAdjusters.firstDayOfNextMonth());
System.out.println("firstDayOfNextMonth : " + with3); } }

Output

current date : 2016-11-15
firstDayOfMonth : 2016-11-01
lastDayOfMonth : 2016-11-30
next monday : 2016-11-21
firstDayOfNextMonth : 2016-12-01
Note
Please check this official TemporalAdjusters JavaDoc for the entire list of the predefined TemporalAdjusters.
 

2. Custom TemporalAdjuster

Example to implement TemporalAdjuster to move a date to next Christmas.

NextChristmas.java
package com.mkyong.time;

import java.time.temporal.ChronoField;
import java.time.temporal.Temporal;
import java.time.temporal.TemporalAdjuster; public class NextChristmas implements TemporalAdjuster { @Override
public Temporal adjustInto(Temporal temporal) { return temporal.with(ChronoField.MONTH_OF_YEAR, 12).with(ChronoField.DAY_OF_MONTH, 25); }
}
TestDate.java
package com.mkyong.time;

import java.time.LocalDate;

public class TestDate {

    public static void main(String[] args) {

        LocalDate localDate = LocalDate.now();
System.out.println("current date : " + localDate); localDate = localDate.with(new NextChristmas());
System.out.println("Next Christmas : " + localDate); } }

Output

current date : 2016-11-15
Next Christmas : 2016-12-25

Alternatively, you can use the following lambda expression :

	localDate = localDate.with(
temporal -> temporal.with(ChronoField.MONTH_OF_YEAR, 12).with(ChronoField.DAY_OF_MONTH, 25)
); http://www.mkyong.com/java8/java-8-temporaladjusters-examples/

Java 8 – TemporalAdjusters examples的更多相关文章

  1. Java 8 – MinguoDate examples

    1. LocalDate -> MinguoDate Review a full example to convert a LocalDate to MinguoDate TestMinguoD ...

  2. Java 8 forEach examples遍历例子

    1. forEach and Map 1.1 Normal way to loop a Map. Map<String, Integer> items = new HashMap<& ...

  3. Android中使用java.util.Properties犯的错

    今天尝试使用java.util.Properties来保存应用配置,然而遇到了好几个问题,对于熟悉此内容的来说可能都是猪一样的错误,但难免有像我一样的新手再次遇到,希望此文能有所帮助. 错误1 jav ...

  4. 无IDE时编译和运行Java

    最近 Java subreddit 出现了一篇”在没有IDE的情况下编译Java包” 的帖子,这个帖子抛出了这么一个问题,“是否存在一个命令可以编译一组处于同一文件夹下独立包内的java文件的方法(这 ...

  5. [转]无IDE时编译和运行Java

    本文由 ImportNew - Grey 翻译自 dzone.欢迎加入Java小组.转载请参见文章末尾的要求. 最近 Java subreddit 出现了一篇”在没有IDE的情况下编译Java包” 的 ...

  6. Core Java Volume I — 4.7. Packages

    4.7. PackagesJava allows you to group classes in a collection called a package. Packages are conveni ...

  7. gRPC java 客户端,服务器端通讯使用json格式

    使用 protobuf 作为通讯内容序列化的简单例子请看:http://www.cnblogs.com/ghj1976/p/5458176.html . 本文是使用 json 做为内容序列化的简单例子 ...

  8. 【转】O'Reilly Java系列书籍建议阅读顺序(转自蔡学庸)

    Learning Java the O'Reilly's Way (Part I) Java 技术可以说是越来越重要了,不但可以用在计算机上,甚至连电视等家电用品,行动电话.个人数字助理(PDA)等电 ...

  9. 《Velocity java开发指南》中文版(下)转载

    文章出自:http://sakyone.iteye.com/blog/524292 8.Application Attributes Application Attributes (应用程序属性)是和 ...

随机推荐

  1. 使用Newtonsoft进行JSON序列化时将枚举序列化为字符串的方法

    一.实体书写 将枚举类型的属性前面加上[JsonConverter(typeof(StringEnumConverter))]即可. 二.举例 [JsonConverter(typeof(String ...

  2. TaskFactory设置并发量

    Task对象很多人知道了(使用Task代替ThreadPool和Thread, C#线程篇—Task(任务)和线程池不得不说的秘密(5)) 相对的还有TaskScheduler 这个调度器,可以自定义 ...

  3. C#实现U盘检查,并写入文件

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  4. Java BIO、NIO、AIO 学习

    正在学习<大型网站系统与JAVA中间件实践>,发现对BIO.NIO.AIO的概念很模糊,写一篇博客记录下来.先来说个银行取款的例子: 同步 : 自己亲自出马持银行卡到银行取钱(使用同步IO ...

  5. reStructuredText - 一个比MarkDown更好用的标记语言

    文档和教程 http://docutils.sourceforge.net/rst.html http://zh-sphinx-doc.readthedocs.io/en/latest/rest.ht ...

  6. web前端开发,如何提高页面性能优化?

    内容方面: 1.减少 HTTP 请求 (Make Fewer HTTP Requests) 2.减少 DOM 元素数量 (Reduce the Number of DOM Elements) 3.使得 ...

  7. http 三次握手

    1.三次握手 目的:主要规避由于网络阻塞,传输不畅等原因导致服务器端端口一直被占用,无法释放端口资源.(想想假设只要一次就建立连接,服务器响应后浏览器若是没收到数据,等待一段时间后,网络超时,浏览器重 ...

  8. java中pojo、dao命名解释

    POJO::POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称. 使用POJO名称是为了避免和EJB ...

  9. RHEL7-openldap安装配置一(服务器端安装配置)

    LDAP的术语:entry:一个单独的单元,使用DN(distinguish name)区别attribute:entry的属性,比如,如果entry是组织机构的话,那么它的属性包括地址,电话,传真号 ...

  10. Linux下Shell元字符的释义

    Linux下shell的巧妙应用,对系统的运维很有四两拨千斤的功效! Shell元字符 注意: () 在当前shell的子shell进程运行命令 {}在当前shell进程运行命令