JAVA中的日期LocalDate类详细用法讲解java

LocalDate表示一个年份、月份和日期的日期,其一般形式为:yyyy-MM-dd。例如:2023-10-11。LocalDate在JAVA中由final修饰,是不可变的,一旦创建,就不能更改它的值。如果需要修改日期,可以创建一个新的LocalDate对象。

LocalDatecurrentDate=LocalDate.now();//创建一个LocalData对象获取当前日期System.out.println("当前日期为:"+currentDate);其输出结果为:

当前日期为:2023-10-11

//获取当前日期LocalDatecurrentDate=LocalDate.now();//获取年份intyear=currentDate.getYear();//获取月份Monthmonth=currentDate.getMonth();//获取日intday=currentDate.getDayOfMonth();System.out.println("年份:"+year);System.out.println("月份:"+month);System.out.println("日:"+day);其输出结果为:(如果想要获取以int形式的月份可以使用:intmonthValue=currentDate.getMonthValue();)

年份:2023月份:OCTOBER日:11

LocalDatecurrentDate=LocalDate.now();//获取星期几枚举值DayOfWeekdayOfWeek=currentDate.getDayOfWeek();//获取日期在年份中的第几天intdayOfYear=currentDate.getDayOfYear();//检查日期所在年份是否为闰年booleanisLeapYear=currentDate.isLeapYear();//获取日期所在月份的天数intdaysInMonth=currentDate.lengthOfMonth();//获取日期所在年份的天数intdaysInYear=currentDate.lengthOfYear();//获取星期几的整数值intdayOfWeekValue=currentDate.getDayOfWeek().getValue();System.out.println("当前日期:"+currentDate);//当前日期:2023-10-11System.out.println("今天是星期"+dayOfWeekValue);//今天是星期3System.out.println("星期几:"+dayOfWeek);//星期几:WEDNESDAYSystem.out.println("日期在年份中的第几天:"+dayOfYear);//日期在年份中的第几天:284System.out.println("是否为闰年:"+isLeapYear);//是否为闰年:falseSystem.out.println("当前月份的天数:"+daysInMonth);//当前月份的天数:31System.out.println("当前年份的天数:"+daysInYear);//当前年份的天数:365

可以使用LocalDate.of(year,month,day)来创建一个特定的日期对象

LocalDatecurrentDate1=LocalDate.of(2023,10,22);System.out.println("当前日期为:"+currentDate1);其输出结果为:

当前日期为:2023-10-22

除了使用LocalDate.of来创造一个特定的日期对象外,我们还可以将一个格式标准的String对象转化为LocalData对象:LocalDate.parse,LocalDate.parse用于将字符串表示的日期解析为LocalDate对象。它允许你将字符串日期按照指定的日期格式转换为日期对象,以便后续操作或显示。

//创建一个字符串日期Stringstringdata="2023-01-06";//格式化日期规则DateTimeFormatterformatter=DateTimeFormatter.ofPattern("yyyy-MM-dd");//将字符串日期按照规则转化为LocalData对象LocalDatestringcurrentDate1=LocalDate.parse(stringdata,formatter);System.out.println("当前日期为:"+stringcurrentDate1);其输出结果为:(需要注意的是:你规定的日期格式应为:yyyy-MM-dd,你不可以写2023-1-06,否则会抛出:java.time.format.DateTimeParseException:异常)

当前日期为:2023-01-06

将字符串日期转化为LocalData对象的场景多用于读取文件中的日期,在做业务的时候经常会从Excel、Word或者图像识别的发票等等数据中读取到日期,有的时候这些日期可不会是规范的形式,那么该如何解决?假如说现在传递的日期就是:2023-1-6,我们怎么转化为LocalData对象呢?答案还是使用我们的DateTimeFormatterformatter,格式化日期,只需要将值设为yyyy-M-d即可读取,并且如果需要的话还可以补零。

//原始日期字符串StringoriginalDate="2023-1-1";//将日期字符串解析为LocalDate对象LocalDatedate=LocalDate.parse(originalDate,DateTimeFormatter.ofPattern("yyyy-M-d"));System.out.println("格式化前的日期:"+originalDate);//使用DateTimeFormatter格式化日期,指定月份和日期部分的宽度为两位StringformattedDate=date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));System.out.println("格式化后的日期:"+formattedDate);其输出结果为:

格式化前的日期:2023-1-1格式化后的日期:2023-01-01

1.plusYears(longyears),minusYears(longyears):增加或减少指定年数。

LocalDatedate=LocalDate.now();LocalDatefutureDate=date.plusYears(2);//增加2年LocalDatepastDate=date.minusYears(1);//减少1年System.out.println("增加后的年数:"+futureDate);//增加后的年数:2025-10-11System.out.println("减少后的年数:"+pastDate);//减少后的年数:2022-10-112.plusMonths(longmonths),minusMonths(longmonths):增加或减少指定月数。

3.plusWeeks(longweeks),minusWeeks(longweeks):增加或减少指定周数。

4.plusDays(longdays),minusDays(longdays):增加或减少指定天数。(函数形式一样,所以月周天不做代码展示了)

5.除了对年月周日单独操作外,我们还可以进行统一的操作,比如增加一年零三个月(plus为增,minus为减)

LocalDatedate=LocalDate.now();LocalDatefutureDate=date.plus(Period.of(1,2,0));//增加1年3个月System.out.println("当前日期:"+date);//当前日期:2023-10-11System.out.println("增加后的日期:"+futureDate);//增加后的日期:2024-12-11

LocalDatecurrentDate=LocalDate.now();//获取当前周的第一天(星期一)LocalDatefirstDayOfWeek=currentDate.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));//获取当前周的最后一天(星期日)LocalDatelastDayOfWeek=currentDate.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY));System.out.println("本周第一天:"+firstDayOfWeek);//本周第一天:2023-10-09System.out.println("本周最后一天:"+lastDayOfWeek);//本周最后一天:2023-10-15

//获取当前日期LocalDatecurrentDate=LocalDate.now();//获取当前月的第一天LocalDatefirstDayOfMonth=currentDate.with(TemporalAdjusters.firstDayOfMonth());//获取当前月的最后一天LocalDatelastDayOfMonth=currentDate.with(TemporalAdjusters.lastDayOfMonth());System.out.println("本月第一天:"+firstDayOfMonth);//本月第一天:2023-10-01System.out.println("本月最后一天:"+lastDayOfMonth);//本月最后一天:2023-10-31

//获取当前日期LocalDatecurrentDate=LocalDate.now();//获取WeekFields对象,指定周的起始日为星期一//4指定了星期四作为一年中的第一天。这影响了一年中的第一周是如何定义的。在这种定义下,一年中的第一周将包含星期四//因此星期四所在的周将被视为第一周,直到下一年的星期四。WeekFieldsweekFields=WeekFields.of(DayOfWeek.MONDAY,4);//获取当前日期所在周是本月的第几周intweekOfMonth=currentDate.get(weekFields.weekOfMonth());//获取当前日期所在周是本年的第几周intweekOfYear=currentDate.get(weekFields.weekOfWeekBasedYear());System.out.println("当前日期所在周是本月的第"+weekOfMonth+"周");System.out.println("当前日期所在周是本年的第"+weekOfYear+"周");

以下是一些常见的TemporalAdjusters方法及其功能:

firstDayOfMonth():返回指定日期所在月份的第一天。

lastDayOfMonth():返回指定日期所在月份的最后一天。

firstDayOfNextMonth():返回指定日期下个月的第一天。

firstDayOfNextYear():返回指定日期下一年的第一天。

next(DayOfWeekdayOfWeek):返回指定日期之后的下一个星期几。例如,next(DayOfWeek.MONDAY)返回下一个星期一。

previous(DayOfWeekdayOfWeek):返回指定日期之前的上一个星期几。

nextOrSame(DayOfWeekdayOfWeek):返回指定日期,如果它是指定星期几,则返回它本身,否则返回下一个指定星期几。

previousOrSame(DayOfWeekdayOfWeek):返回指定日期,如果它是指定星期几,则返回它本身,否则返回上一个指定星期几。

firstInMonth(DayOfWeekdayOfWeek):返回指定日期所在月份的第一个指定星期几。

lastInMonth(DayOfWeekdayOfWeek):返回指定日期所在月份的最后一个指定星期几。

dayOfWeekInMonth(intordinal,DayOfWeekdayOfWeek):返回指定日期所在月份的第ordinal个指定星期几。例如,dayOfWeekInMonth(2,DayOfWeek.WEDNESDAY)返回指定日期所在月份的第二个星期三。

firstDayOfYear():返回指定日期所在年份的第一天。

lastDayOfYear():返回指定日期所在年份的最后一天。

equals()方法用于检查两个LocalDate对象是否表示相同的日期。如果两个对象表示相同的日期,equals()方法将返回true,否则返回false。

LocalDatedate1=LocalDate.of(2023,5,15);LocalDatedate2=LocalDate.of(2023,5,15);LocalDatedate3=LocalDate.of(2023,5,16);booleanareEqual=date1.equals(date2);//返回truebooleanareEqual2=date1.equals(date3);//返回false

isBefore()方法用于检查一个LocalDate是否在另一个LocalDate之前。如果第一个日期在第二个日期之前,该方法返回true,否则返回false。

LocalDatedate1=LocalDate.of(2023,5,15);LocalDatedate2=LocalDate.of(2023,5,20);booleanisBefore=date1.isBefore(date2);//返回truebooleanisBefore2=date2.isBefore(date1);//返回false

isAfter()方法用于检查一个LocalDate是否在另一个LocalDate之后。如果第一个日期在第二个日期之后,该方法返回true,否则返回false。

LocalDatedate1=LocalDate.of(2023,5,15);LocalDatedate2=LocalDate.of(2023,5,10);booleanisAfter=date1.isAfter(date2);//返回true

compareTo()方法用于将两个LocalDate对象进行比较,并返回一个整数值。如果第一个日期在第二个日期之前,返回负数;如果两个日期相同,返回零;如果第一个日期在第二个日期之后,返回正数。

LocalDatedate1=LocalDate.of(2023,5,15);LocalDatedate2=LocalDate.of(2023,5,20);intresult=date1.compareTo(date2);//返回-5intresult2=date2.compareTo(date1);//返回5

这个示例将展示如何使用LocalDate来计算一个人的年龄。假设当前日期是2021年7月31日,我们想计算一个人1995年10月24日出生时的年龄。下面是实现方法的代码,其中代码块中的“xxxx-xx-xx”部分需要替换成具体的年月日:

LocalDatebirthDate=LocalDate.of(1995,Month.OCTOBER,24);LocalDatecurrentDate=LocalDate.now();intage=Period.between(birthDate,currentDate).getYears();System.out.println("Age:"+age);输出结果为:

Age:25

这个示例将展示如何使用LocalDate来计算一个人的年龄。假设当前日期是2021年7月31日,我们有一个包含生日的字符串“1995-10-24”,我们想计算这个人的年龄。下面是实现方法的代码:

DateTimeFormatterformatter=DateTimeFormatter.ofPattern("yyyy-MM-dd");LocalDatebirthDate=LocalDate.parse("1995-10-24",formatter);LocalDatecurrentDate=LocalDate.now();intage=Period.between(birthDate,currentDate).getYears();System.out.println("Age:"+age);

THE END
1.在Excel中快速將天轉換成年,月和日假設您在工作表中有一個數字列表,現在,您要將這些數字轉換為年,月和日格式,例如將450轉換為1年2個月25天。 在本文中,我將討論一個強大的工具-Excel的Kutools,其將天轉換為年月日函數,您可以快速將天數轉換為年,月和日,而無需記住任何公式。 在Excel中將天數轉換為年月日 https://zh-tw.extendoffice.com/product/kutools-for-excel/excel-convert-days-to-years-months-and-days.html
2.年月日格式怎么转换日期转换成年月日格式的方法详解在使用excel的时候,大家或多或少会碰到一些问题,这不最近就有小伙伴问小编,想要把excel的日期格式转换成年月日的格式,但是不知道怎么进行操作,不要着急,万能的IT百科小编在下文中来好好教教大家怎么进行转换,大家赶紧来看看吧。 年月日格式怎么转换? http://product.pconline.com.cn/itbk/software/dnyw/1586/15864350.html
3.Excel日期格式转换技巧:从日/月/年到月日年在处理数据时,我们经常需要将日期格式从一种样式转换为另一种样式以满足特定的格式要求。在Excel中,将日期格式从日/月/年转换为月-日-年是一个常见的需求。下面将介绍几种方法来完成这一转换。 方法一:使用Excel的“设置单元格格式”功能 首先,选中包含日期的单元格或单元格范围。 https://www.kdocs.cn/article/774CF17FCA.html
4.excel常用函数公式及技巧搜集2阳光风采根据出生年月推算生肖 中国人有12生肖,属什么可以推算出来。即用诞生年份除以12,再用除不尽的余数对照如下:0→猴,1→鸡,2→狗,3→猪,4→鼠,5→牛,6→虎,7→兔,8→龙,9→蛇,10→马,11→羊例如:XXX出生于1921年,即用1921年除以12,商得数为160,余数为1,对照上面得知余数1对应生肖是鸡,XXX就属鸡。https://www.iteye.com/blog/1181170
5.Excel常用函数公式及技巧(1)=DATEDIF(C6,C8,"m")求两日期间的总月数如果只需要算出周年的话,可以用=datedif("1978-8","2006-5","Y") 7.年龄及工龄计算 有出生年月如何求年龄? 有工作时间如何求工龄?(求出的结果为多少年另几个月,如:0303的形式,即3年零3个月)。 https://m.wang1314.com/doc/webapp/topic/11438652.html
6.将身份证号中的出生日期转换成Date对象并按yyyy年MM月dd日格式输出文章浏览阅读1.5k次。import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Scanner;public class IdNo { static SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日"); static Date idNo(String ihttps://blog.csdn.net/shaoNianABin123/article/details/111937447
7.各种日期格式年龄计算公及身份证号码提取出生年月日性别.doc日期格式2 (内含“日期格式1”转换“日期格式2”公式)12005-5-31220042212004-2-2132003-各种日期格式计算年龄序号日期格式1日期格式2 (内含“日期格式1”转换“日期格式2”公式)12005-5-31220042212004-2-2132003-1-21身份证号码如何提取出生年月日及性别公式序号身份证号码出生年月日(提取公式)1https://www.taodocs.com/p-583890020.html
8.如何使用Excel提取身份证中的年月日信息BIM免费教程在现代社会,身份证是我们日常生活中不可或缺的重要证件,其中包含了许多个人信息,包括出生年月日等。利用Excel提取身份证中的年月日信息,可以帮助我们更方便地进行数据处理和分析。本文将详细介绍如何使用Excel中的文本函数和日期格式,来提取身份证号中的年月日信息,并以示例说明每个步骤。 http://www.tuituisoft.com/office/154241.html
9.求助,把数值格式输入的出生年月,转成日期格式,变成了1905?excel吧把数值格式输入的出生年月,转成日期格式,变成了1905?然后用datedif函数就算出了113岁,是不是开始输入的格式产生的问题呢 贴吧用户_0DGNRVa E见钟情 1 查找替换就可以了,我今天也遇到了同样的问题 带1234567 E知半解 5 最后的1986.03不是文本(左上角没有绿三角)所以公式转换失效,结果还是1986.03(数字),换https://tieba.baidu.com/p/6010894792
10.教你一招:wps表中身份证号提取出生日期四、转换成大写日期 要将以上格式转换为”贰零壹拾年拾贰月拾肆日“,此时方法还是同以上一样,在自定义里的类型改成”[dbnum2]0000年00月00日“,然后确定。 五、将格式转换为”二〇一九年三月十七日“这种格式 方法还是右键打开单元格设置,然后在自定义下的https://mp.weixin.qq.com/s?__biz=MzAxMDYyMzE5OA==&mid=2458170895&idx=1&sn=ff7b475cf058dbd2c356647372a60822&chksm=8c3d97bebb4a1ea820ffd1aeb0440225f086699f4cc7966aae2278590772fbecfe24b34a6538&scene=27
11.sqlserver截取身份证出生年月转换成日期步骤二:将截取的出生年月转换成日期格式 接下来,我们需要将截取得到的出生年月转换成日期格式。在SQL Server中,可以使用CONVERT函数来实现日期格式的转换。具体的代码如下: -- 将截取得到的出生年月转换成日期格式DECLARE@birthYearMonthVARCHAR(6)='出生年月'-- 请替换为实际的出生年月DECLARE@birthDateDATESET@birhttps://blog.51cto.com/u_16213387/9923140
12.stata中出生日期怎么转换为年龄,不太明白啊stata中如何将出生日期型变量转换为年龄。数据格式是23jan98%dD_M_Y现在我想根据这个数据转换一个年龄,以2012年3月20日为临界点。也就是就是计算23jan98到2012年3月20日的年龄。谢谢各位了。另外相关的命令可以从哪 免费学术公开课,扫码加入 https://bbs.pinggu.org/jg/kaoyankaobo_kaoyan_1418323_1.html
13.Excel出生日期格式怎么转换在Excel怎样把年月日的日期转换成年月格式? 共1条回答 > 李凯: 这是一个关于Excel的操作。方法1/4在表格中,选中目标单元格,单击鼠标右键;2/4然后选择“设置单元格格式”;3/4在弹出的框中,在“数字”栏下选择“日期”;4/4在右侧出现的类型选项中选择年月这一项即可。 Feign丶微笑邀请你来回答 赞 回复https://www.3d66.com/answers_relation/relation_3721006_26.html
14.出生日期格式年月日(8位).docx上传人:十*** IP属地:山东 上传时间:2023-01-29 格式:DOCX 页数:5 大小:174.06KB 积分:14.9 举报 版权申诉 全文预览已结束  下载本文档 版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领文档简介 复制出生日期:粘贴excel表格:格式—单元格—自定义—yyyy-https://www.renrendoc.com/paper/238999445.html