本文主要是介绍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详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!