10个常用的Java8日期处理函数案例详解

本文介绍了Java8中关于日期处理的核心功能,包括获取当前日期、获取年月日部分、设置特定日期、判断日期相等、判断生日、日期计算以及日期相差天数和月数的计算。示例代码展示了如何使用LocalDate和相关API进行操作。
摘要由CSDN通过智能技术生成

Java 8中的日期函数,主要是基于 ISO标准日历系统,java.time 包下的所有类都是不可变类型,且线程安全,现在就日期处理的常用功能代码总结如下。

1.获得当前日期

     /**
     * 获得当前日期
     */
    @Test
    public void testGetToday(){
        LocalDate localDate=LocalDate.now();
        System.out.println("当前日期:"+localDate);
        //执行结果:
        // 当前日期:2022-09-13
    }

2.获得 年、月、日部分

    /**
     * 获得 年 月 日部分
     */
    @Test
    public void testGetYearMonthDay(){
        LocalDate localDate=LocalDate.now();
        int year= localDate.getYear();
        int month=localDate.getMonthValue();
        int day=localDate.getDayOfMonth();
        System.out.println("年:"+year);
        System.out.println("月:"+month);
        System.out.println("日:"+day);
        // 执行结果:
        // 年:2022
        // 月:9
        // 日:13
    }

3.设置特定日期

    /**
     * 设置特定日期
     */
    @Test
    public void testSetDefaultDate(){
        LocalDate localDate=LocalDate.of(2021,10,1);
        System.out.println("2021国庆:"+localDate);
        // 执行结果:
        // 2021国庆:2021-10-01
    }

4.判断日期是否相等

    /**
     * 日期判断相等
     */
    @Test
    public void  testDateEquals(){
        LocalDate localDateFirst=LocalDate.of(2021,10,1);
        LocalDate localDateSencond=LocalDate.of(2021,10,1);
        LocalDate localDateThird=LocalDate.of(2020,11,1);
        System.out.println("  localDateFirst == localDateSencond :"+localDateFirst.equals(localDateSencond));
        System.out.println("  localDateFirst == localDateThird :"+localDateFirst.equals(localDateThird));
        //执行结果:
        //  localDateFirst == localDateSencond :true
        //  localDateFirst == localDateThird :false
    }

5.判断今天是否是小张、小明的生日

      /**
     * 判断今天是否是小张、小明的生日
     */
    @Test
    public void testBirthdayEquals(){
        // 今天日期
        LocalDate localDate=LocalDate.now();
        System.out.println("当前日期:"+localDate);
        // 小明的生日:包含月和日的对象
        MonthDay xiaomingBirthday=MonthDay.of(9,13);
        // 小张的生日:包含月和日的对象
        MonthDay xiaozhangBirthday=MonthDay.of(8,11);
        // 当前日期对象的MonthDay对象
        MonthDay todayMonthDay=MonthDay.from(localDate);
        if (todayMonthDay.equals(xiaomingBirthday)){
            System.out.println("今天是小明的生日");
        }else{
            System.out.println("今天不是小明的生日");
        }
        if (todayMonthDay.equals(xiaozhangBirthday)){
            System.out.println("今天是小张的生日");
        }else{
            System.out.println("今天不是小张的生日");
        }
        // 执行结果:
        // 当前日期:2022-09-13
        // 今天是小明的生日
        // 今天不是小张的生日
    }

6.日期计算(明年、下个月、下周、明天,去年、上个月、上周、昨天)

    /**
     * 日期计算(明年,下个月、下周、明天,去年、上个月、上周、昨天)
     */
    @Test
    public void testCalcLocalDate(){
        LocalDate localDate=LocalDate.now();
        System.out.println("当前日期:"+localDate);
        LocalDate nextYear=localDate.plusYears(1);
        System.out.println("明年:"+nextYear);
        LocalDate preYear=localDate.plusYears(-1);
        System.out.println("去年:"+preYear);
        LocalDate nextMonth=localDate.plusMonths(1);
        System.out.println("下个月:"+nextMonth);
        LocalDate preMonth=localDate.plusMonths(-1);
        System.out.println("上个月:"+preMonth);
        LocalDate nextWeek=localDate.plusWeeks(1);
        System.out.println("下周:"+nextWeek);
        LocalDate preWeek=localDate.plusWeeks(-1);
        System.out.println("上周:"+preWeek);
        LocalDate nextDay=localDate.plusDays(1);
        System.out.println("明天:"+nextDay);
        LocalDate preDay=localDate.plusDays(-1);
        System.out.println("昨天:"+preDay);
        //执行结果:
        //当前日期:2022-09-13
        //明年:2023-09-13
        //去年:2021-09-13
        //下个月:2022-10-13
        //上个月:2022-08-13
        //下周:2022-09-20
        //上周:2022-09-06
        //明天:2022-09-14
        //昨天:2022-09-12
 
    }
    
   @Test
   public void testCalcDateDiff(){
        LocalDate localDate1=LocalDate.of(2022,9,13);
       LocalDate localDate2=LocalDate.of(2020,8,13);
      Period period= Period.between(localDate1,localDate2);
       System.out.println("相差天数:"+period.getDays());
       System.out.println("相差月数:"+period.getMonths());
   }

7.计算日期相差天数

/**  
* 计算日期相差天数  
*/  
@Test  
public  void testLocadateDifferDays(){
    LocalDateTime localDateTimeStart=LocalDateTime.of(2020,8,12,0,0,0);
    System.out.println("开始日期:"+localDateTimeStart);     
    LocalDateTime localDateTimeEnd=LocalDateTime.of(2022,9,15,0,0,0);     
    System.out.println("结束日期:"+localDateTimeEnd);     
    Duration duration =Duration.between(localDateTimeStart,localDateTimeEnd);     
    System.out.println("相差绝对天数:"+duration.toDays());     
    //执行结果:     
    //开始日期:2020-08-12T00:00     
    //结束日期:2022-09-15T00:00     
    //相差绝对天数:764  
}  

8.计算日期相差月数

/**  
* 计算日期相差月数  
*/  
@Test  
public  void testLocadateDifferMonth(){     
    LocalDate localDateStart=LocalDate.of(2020,8,12);     
    System.out.println("开始日期:"+localDateStart);     
    LocalDate localDateEnd=LocalDate.of(2022,9,15);     
    System.out.println("结束日期:"+localDateEnd);     
    Period period =Period.between(localDateStart,localDateEnd);     
    System.out.println("相差绝对月数:"+period.toTotalMonths());      
    //执行结果     
    //开始日期:2020-08-12     
    //结束日期:2022-09-15     
    //相差绝对月数:25  
}   

9.字符串转成日期对象、字符串转日期时间对象

/**  
* 字符串转成日期对象、字符串转日期时间对象  
*/  
@Test  
public void testStringToDate() {     
    String datestr="2022-08-11";     
    //字符串转成日期时间对象     
    LocalDate localDate=LocalDate.parse(datestr, DateTimeFormatter.ISO_LOCAL_DATE);     
    System.out.println(localDate);     
    datestr="2022-08-11T14:22:33";     
    //字符串转成日期对象     
    LocalDateTime localDateTime=LocalDateTime.parse(datestr, DateTimeFormatter.ISO_LOCAL_DATE_TIME);     
    System.out.println(localDateTime);     
    //执行结果     
    //2022-08-11     
    //2022-08-11T14:22:33  
}    

10.LocalDate、LocalDateTime 格式化字符串

/**  
* LocalDate、LocalDateTime 格式化字符串  
*/  
@Test  
public  void  testDateToString(){     
    LocalDate localDate=LocalDate.now();     
    DateTimeFormatter dateTimeFormatter=DateTimeFormatter.ofPattern("yyyy-MM-dd");     
    //日期格式化字符串    
    String datestr= dateTimeFormatter.format(localDate);     
    System.out.println(datestr);     
    LocalDateTime localDateTime=LocalDateTime.now();     
    dateTimeFormatter=DateTimeFormatter.ofPattern("yyyy-MM-dd:HH:mm:ss");     
    //日期时间格式话字符串     
    String datetimestr=dateTimeFormatter.format(localDateTime);     
    System.out.println(datetimestr);     
    
    //执行结果:     
    //2021-09-13     
    //2022-09-13:14:36:30  
}   

通过今天的文章,你现在对Java中的日期时间处理是否熟悉了呢?

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值