zoukankan      html  css  js  c++  java
  • Java 8 – TemporalAdjusters examples

    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/


  • 相关阅读:
    Thinkphp中如何书写按照指定字段同步更新的ORM
    一道money计算题引发的思考
    娱乐一下:汤姆君的大转盘算法(搞笑版)
    php导出数组到csv格式demo
    通过xshell/securecrt连接linux上传/下载文件
    windows设置代理.bat 脚本
    【面试题】输入并保存文件,完成后退出显示文件内容
    【设计模式学习笔记】 之 状态模式
    【学习笔记】FreeMarker 之于Servlet与Stuts2的应用
    【学习笔记】初识FreeMarker简单使用
  • 原文地址:https://www.cnblogs.com/shy1766IT/p/10162132.html
Copyright © 2011-2022 走看看