本文主要是介绍Java 8日期时间类LocalDate、LocalDateTime详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Java 8日期时间类LocalDate、LocalDateTime详解
- 一、常见类型转换
- 1.1 LocalDateTime 转 LocalDate
- 1.2 LocalDateTime 转 Date
- 1.3 LocalDate 转 LocalDateTime
- 1.4 LocalDate 转 Date
- 1.5 Date 转 LocalDateTime
- 1.6 Date 转 LocalDate
- 1.7 LocalDate 转 String
- 1.8 String 转 LocalDate
- 1.9 LocalDateTime 转 String
- 2.0 String 转 LocalDateTime
- 二、LocalDateTime类常用方法
- 三、LocalDate类常用方法
- LocalDateTime 是Java 8中的一个日期时间类,用于表示不带时区的日期时间信息。它包含了年、月、日、小时、分钟和秒等信息。
一、常见类型转换
1.1 LocalDateTime 转 LocalDate
LocalDateTime localDateTime = LocalDateTime.now();LocalDate localDate = localDateTime.toLocalDate();
1.2 LocalDateTime 转 Date
LocalDateTime localDateTime = LocalDateTime.now();ZoneId zoneId = ZoneId.systemDefault();ZonedDateTime zonedDateTime = localDateTime.atZone(zoneId);Date date = Date.from(zonedDateTime.toInstant());
1.3 LocalDate 转 LocalDateTime
LocalDate localDate = LocalDate.now();LocalDateTime localDateTime1 = localDate.atStartOfDay(); LocalDateTime localDateTime2 = localDate.atTime(8,20,33);LocalDateTime localDateTime3 = localDate.atTime(LocalTime.now());
1.4 LocalDate 转 Date
LocalDate localDate = LocalDate.now();ZoneId zoneId = ZoneId.systemDefault();Date date = Date.from(localDate.atStartOfDay().atZone(zoneId).toInstant());
1.5 Date 转 LocalDateTime
Date date = new Date();ZoneId zoneId = ZoneId.systemDefault();LocalDateTime localDateTime = date.toInstant().atZone(zoneId).toLocalDateTime();
1.6 Date 转 LocalDate
Date date = new Date();ZoneId zoneId = ZoneId.systemDefault();LocalDate localDate = date.toInstant().atZone(zoneId).toLocalDate();
1.7 LocalDate 转 String
LocalDate today = LocalDate.now();String dateStr = today.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
1.8 String 转 LocalDate
String str = "2023-10-20";DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDate date = LocalDate.parse(str, fmt);
1.9 LocalDateTime 转 String
String dateStr = "2023-09-03 21:00:00";DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");LocalDateTime parsedDate = LocalDateTime.parse(dateStr, formatter);
2.0 String 转 LocalDateTime
String str = "2023-10-20";DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDate date = LocalDate.parse(str, fmt);
二、LocalDateTime类常用方法
- plusXxx() 和 minusXxx():用于对日期时间进行加减操作,其中 Xxx 可以是 Years、Months、Days、Hours、Minutes、Seconds、Nanos 等。
LocalDateTime dateTime = LocalDateTime.now();LocalDateTime plusOneDay = dateTime.plusDays(1);LocalDateTime minusOneHour = dateTime.minusHours(1);
- isBefore() 和 isAfter():用于比较两个日期时间的先后顺序。
LocalDateTime dateTime1 = LocalDateTime.of(2022, 1, 1, 12, 0);LocalDateTime dateTime2 = LocalDateTime.of(2022, 1, 2, 12, 0);boolean isBefore = dateTime1.isBefore(dateTime2); boolean isAfter = dateTime1.isAfter(dateTime2);
- isEqual():用于判断两个日期时间是否相等。
LocalDateTime dateTime1 = LocalDateTime.of(2022, 1, 1, 12, 0);LocalDateTime dateTime2 = LocalDateTime.of(2022, 1, 1, 12, 0);boolean isEqual = dateTime1.isEqual(dateTime2);
- format():将日期时间格式化为字符串。
LocalDateTime dateTime = LocalDateTime.now();String formattedDateTime = dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
三、LocalDate类常用方法
LocalDate today = LocalDate.now()
方法 | 返回值 介绍 |
---|
getYear() | int 、 该日期的年份 |
getMonth() | Month、 该日期月份的对象 |
getMonthValue() | int 、 该日期的月份 |
查询、直接修改年份日期等 | - |
---|
getDayOfWeek().getValue() | int 、 该日期是当前周的第几天 |
getDayOfMonth() | int 、 该日期是当前月的第几天 |
getDayOfYear() | int 、 该日期是当前年的第几天 |
withYear(int year) | LocalDate、 修改该日期的年份 |
withYear(int year) | LocalDate、 修改该日期的月份 |
withDayOfMonth(int dayOfMonth) | LocalDate 、 修改该日期在当月的天数 |
判断、比较 | – |
---|
isLeapYear() | boolean、 判断是否是闰年 |
lengthOfYear() | int 、 判断该年份是356还是366天? |
lengthOfMonth() | int 、 当前月份有多少天 |
compareTo(ChronoLocalDate other) | int 、 比较该日期与other日期的大小,返回正数,那么当前对象时间较晚(数字较大) |
isBefore(ChronoLocalDate other) | boolean、 比较该日期是否比参数日期早(true为早) |
isAfter(ChronoLocalDate other) | boolean、 比较该日期是否比参数日期晚(true为晚) |
isEqual(ChronoLocalDate other) | boolean、 比较两个日期是否相等 |
在原有基础上增加年份等 | – |
---|
plusYears(long yearsToAdd) | LocalDate 、 当前日期增加指定的年数 |
plusMonths(long monthsToAdd) | LocalDate 、 当前日期增加指定的月份 |
plusWeeks(long weeksToAdd) | LocalDate 、 当前日期增加指定的周数 |
plusDays(long daysToAdd) | LocalDate 、 当前日期增加指定的天数 |
在原有基础上减少年份等 | – |
---|
minusYears(long yearsToSubtract) | LocalDate 、 当前日期减少指定的年数 |
minusMonths(long monthsToSubtract) | LocalDate 、 当前日期减少指定的月份 |
minusWeeks(long weeksToSubtract) | LocalDate 、 当前日期减少指定的周数 |
minusDays(long daysToSubtract) | LocalDate 、 当前日期减少指定的天数 |
这篇关于Java 8日期时间类LocalDate、LocalDateTime详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!