当前位置:   article > 正文

10个常用的Java8日期处理函数案例详解_.plusmonths 不会变

.plusmonths 不会变

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

1.获得当前日期

  1.     /**
  2.      * 获得当前日期
  3.      */
  4.     @Test
  5.     public void testGetToday(){
  6.         LocalDate localDate=LocalDate.now();
  7.         System.out.println("当前日期:"+localDate);
  8.         //执行结果:
  9.         // 当前日期:2022-09-13
  10.     }

2.获得 年、月、日部分

  1.     /**
  2.      * 获得 年 月 日部分
  3.      */
  4.     @Test
  5.     public void testGetYearMonthDay(){
  6.         LocalDate localDate=LocalDate.now();
  7.         int year= localDate.getYear();
  8.         int month=localDate.getMonthValue();
  9.         int day=localDate.getDayOfMonth();
  10.         System.out.println("年:"+year);
  11.         System.out.println("月:"+month);
  12.         System.out.println("日:"+day);
  13.         // 执行结果:
  14.         // 年:2022
  15.         // 月:9
  16.         // 日:13
  17.     }

3.设置特定日期

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

4.判断日期是否相等

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

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

  1.       /**
  2.      * 判断今天是否是小张、小明的生日
  3.      */
  4.     @Test
  5.     public void testBirthdayEquals(){
  6.         // 今天日期
  7.         LocalDate localDate=LocalDate.now();
  8.         System.out.println("当前日期:"+localDate);
  9.         // 小明的生日:包含月和日的对象
  10.         MonthDay xiaomingBirthday=MonthDay.of(9,13);
  11.         // 小张的生日:包含月和日的对象
  12.         MonthDay xiaozhangBirthday=MonthDay.of(8,11);
  13.         // 当前日期对象的MonthDay对象
  14.         MonthDay todayMonthDay=MonthDay.from(localDate);
  15.         if (todayMonthDay.equals(xiaomingBirthday)){
  16.             System.out.println("今天是小明的生日");
  17.         }else{
  18.             System.out.println("今天不是小明的生日");
  19.         }
  20.         if (todayMonthDay.equals(xiaozhangBirthday)){
  21.             System.out.println("今天是小张的生日");
  22.         }else{
  23.             System.out.println("今天不是小张的生日");
  24.         }
  25.         // 执行结果:
  26.         // 当前日期:2022-09-13
  27.         // 今天是小明的生日
  28.         // 今天不是小张的生日
  29.     }

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

  1.     /**
  2.      * 日期计算(明年,下个月、下周、明天,去年、上个月、上周、昨天)
  3.      */
  4.     @Test
  5.     public void testCalcLocalDate(){
  6.         LocalDate localDate=LocalDate.now();
  7.         System.out.println("当前日期:"+localDate);
  8.         LocalDate nextYear=localDate.plusYears(1);
  9.         System.out.println("明年:"+nextYear);
  10.         LocalDate preYear=localDate.plusYears(-1);
  11.         System.out.println("去年:"+preYear);
  12.         LocalDate nextMonth=localDate.plusMonths(1);
  13.         System.out.println("下个月:"+nextMonth);
  14.         LocalDate preMonth=localDate.plusMonths(-1);
  15.         System.out.println("上个月:"+preMonth);
  16.         LocalDate nextWeek=localDate.plusWeeks(1);
  17.         System.out.println("下周:"+nextWeek);
  18.         LocalDate preWeek=localDate.plusWeeks(-1);
  19.         System.out.println("上周:"+preWeek);
  20.         LocalDate nextDay=localDate.plusDays(1);
  21.         System.out.println("明天:"+nextDay);
  22.         LocalDate preDay=localDate.plusDays(-1);
  23.         System.out.println("昨天:"+preDay);
  24.         //执行结果:
  25.         //当前日期:2022-09-13
  26.         //明年:2023-09-13
  27.         //去年:2021-09-13
  28.         //下个月:2022-10-13
  29.         //上个月:2022-08-13
  30.         //下周:2022-09-20
  31.         //上周:2022-09-06
  32.         //明天:2022-09-14
  33.         //昨天:2022-09-12
  34.  
  35.     }
  36.     
  37.    @Test
  38.    public void testCalcDateDiff(){
  39.         LocalDate localDate1=LocalDate.of(2022,9,13);
  40.        LocalDate localDate2=LocalDate.of(2020,8,13);
  41.       Period period= Period.between(localDate1,localDate2);
  42.        System.out.println("相差天数:"+period.getDays());
  43.        System.out.println("相差月数:"+period.getMonths());
  44.    }

7.计算日期相差天数

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

8.计算日期相差月数

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

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

  1. /**  
  2. * 字符串转成日期对象、字符串转日期时间对象  
  3. */  
  4. @Test  
  5. public void testStringToDate() {     
  6.     String datestr="2022-08-11";     
  7.     //字符串转成日期时间对象     
  8.     LocalDate localDate=LocalDate.parse(datestr, DateTimeFormatter.ISO_LOCAL_DATE);     
  9.     System.out.println(localDate);     
  10.     datestr="2022-08-11T14:22:33";     
  11.     //字符串转成日期对象     
  12.     LocalDateTime localDateTime=LocalDateTime.parse(datestr, DateTimeFormatter.ISO_LOCAL_DATE_TIME);     
  13.     System.out.println(localDateTime);     
  14.     //执行结果     
  15.     //2022-08-11     
  16.     //2022-08-11T14:22:33  
  17. }    

10.LocalDate、LocalDateTime 格式化字符串

  1. /**  
  2. * LocalDate、LocalDateTime 格式化字符串  
  3. */  
  4. @Test  
  5. public  void  testDateToString(){     
  6.     LocalDate localDate=LocalDate.now();     
  7.     DateTimeFormatter dateTimeFormatter=DateTimeFormatter.ofPattern("yyyy-MM-dd");     
  8.     //日期格式化字符串    
  9.     String datestr= dateTimeFormatter.format(localDate);     
  10.     System.out.println(datestr);     
  11.     LocalDateTime localDateTime=LocalDateTime.now();     
  12.     dateTimeFormatter=DateTimeFormatter.ofPattern("yyyy-MM-dd:HH:mm:ss");     
  13.     //日期时间格式话字符串     
  14.     String datetimestr=dateTimeFormatter.format(localDateTime);     
  15.     System.out.println(datetimestr);     
  16.     
  17.     //执行结果:     
  18.     //2021-09-13     
  19.     //2022-09-13:14:36:30  
  20. }   

通过今天的文章,你现在对Java中的日期时间处理是否熟悉了呢?如果你还想学习其他的内容,可以加下方小姐姐免费领取学习教程。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/339669
推荐阅读
相关标签
  

闽ICP备14008679号