Java 8中的日期函数,主要是基于 ISO标准日历系统,java.time 包下的所有类都是不可变类型,且线程安全,现在壹哥就日期处理的常用功能代码总结如下。
1.获得当前日期
复制代码
1
2
3
4
5
6
7
8
9
10/** * 获得当前日期 */ @Test public void testGetToday(){ LocalDate localDate=LocalDate.now(); System.out.println("当前日期:"+localDate); //执行结果: // 当前日期:2022-09-13 }
2.获得 年、月、日部分
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17/** * 获得 年 月 日部分 */ @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.设置特定日期
复制代码
1
2
3
4
5
6
7
8
9
10/** * 设置特定日期 */ @Test public void testSetDefaultDate(){ LocalDate localDate=LocalDate.of(2021,10,1); System.out.println("2021国庆:"+localDate); // 执行结果: // 2021国庆:2021-10-01 }
4.判断日期是否相等
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14/** * 日期判断相等 */ @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.判断今天是否是小张、小明的生日
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29/** * 判断今天是否是小张、小明的生日 */ @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.日期计算(明年、下个月、下周、明天,去年、上个月、上周、昨天)
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44/** * 日期计算(明年,下个月、下周、明天,去年、上个月、上周、昨天) */ @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.计算日期相差天数
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16/** * 计算日期相差天数 */ @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.计算日期相差月数
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16/** * 计算日期相差月数 */ @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.字符串转成日期对象、字符串转日期时间对象
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17/** * 字符串转成日期对象、字符串转日期时间对象 */ @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 格式化字符串
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20/** * 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中的日期时间处理是否熟悉了呢?如果你还想学习其他的内容,可以加下方小姐姐免费领取学习教程。
最后
以上就是仁爱机器猫最近收集整理的关于10个常用的Java8日期处理函数案例详解的全部内容,更多相关10个常用内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复