赞
踩
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中的日期时间处理是否熟悉了呢?如果你还想学习其他的内容,可以加下方小姐姐免费领取学习教程。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。