-
LocalDate类:
- 创建LocalDate对象:
- 使用
now()
方法获取当前日期。 - 使用
of(year, month, day)
方法根据年、月、日创建一个LocalDate对象。
- 使用
- 获取日期信息:
- 使用
getYear()
、getMonthValue()
、getDayOfMonth()
等方法获取年、月、日信息。
- 使用
- 日期运算:
- 使用
plusDays(days)
、minusMonths(months)
等方法进行日期加减操作。
- 使用
- 创建LocalDate对象:
-
LocalTime类:
- 创建LocalTime对象:
- 使用
now()
方法获取当前时间。 - 使用
of(hour, minute, second)
方法根据时、分、秒创建一个LocalTime对象。
- 使用
- 获取时间信息:
- 使用
getHour()
、getMinute()
、getSecond()
等方法获取时、分、秒信息。
- 使用
- 时间运算:
- 使用
plusHours(hours)
、minusMinutes(minutes)
等方法进行时间加减操作。
- 使用
- 创建LocalTime对象:
-
LocalDateTime类:
- 创建LocalDateTime对象:
- 使用
now()
方法获取当前日期时间。 - 使用
of(year, month, day, hour, minute, second)
方法根据年、月、日、时、分、秒创建一个LocalDateTime对象。
- 使用
- 获取日期时间信息:
- 使用
getYear()
、getMonthValue()
、getDayOfMonth()
等方法获取年、月、日信息。 - 使用
getHour()
、getMinute()
、getSecond()
等方法获取时、分、秒信息。
- 使用
- 日期时间运算:
- 使用
plusDays(days)
、minusMonths(months)
等方法进行日期加减操作。 - 使用
plusHours(hours)
、minusMinutes(minutes)
等方法进行时间加减操作。
- 使用
- 转换:
- 使用
toLocalDate()
方法将LocalDateTime对象转换为LocalDate对象。 - 使用
toLocalTime()
方法将LocalDateTime对象转换为LocalTime对象。
- 使用
- 创建LocalDateTime对象:
-
ZonedDateTime类:
- 创建ZonedDateTime对象:
- 使用
now()
方法获取当前带时区的日期时间。 - 使用
of(LocalDateTime, ZoneId)
方法根据本地日期时间和指定时区创建一个ZonedDateTime对象。
- 使用
- 时区转换:
- 使用
withZoneSameInstant(ZoneId)
方法将ZonedDateTime对象转换到指定时区,返回一个新的ZonedDateTime对象。 - 使用
withZoneSameLocal(ZoneId)
方法将ZonedDateTime对象转换到指定时区,保持本地日期时间不变。
- 使用
- 创建ZonedDateTime对象:
-
Instant类:
- 创建Instant对象:
- 使用
now()
方法获取当前时间戳。 - 使用
ofEpochSecond(epochSecond)
、ofEpochMilli(epochMilli)
方法根据指定的秒数或毫秒数创建一个Instant对象。
- 使用
- 时间戳转换:
- 使用
toEpochMilli()
方法将Instant对象转换为毫秒数。 - 使用
atZone(ZoneId)
方法将Instant对象与指定时区关联,返回一个ZonedDateTime对象。
- 使用
- 创建Instant对象:
-
Duration类:
- 创建Duration对象:
- 使用
between(start, end)
方法根据两个时间点创建一个持续时间对象。
- 使用
- 获取持续时间信息:
- 使用
toDays()
、toHours()
、toMinutes()
等方法获取持续时间的天数、小时数、分钟数等。
- 使用
- 创建Duration对象:
-
Period类:
- 创建Period对象:
- 使用
between(start, end)
方法根据两个日期创建一个间隔对象。
- 使用
- 获取间隔信息:
- 使用
getYears()
、getMonths()
、getDays()
等方法获取间隔的年数、月数、天数等。
- 使用
- 创建Period对象:
-
DateTimeFormatter类:
- 格式化日期时间:
- 使用
ofPattern(pattern)
方法创建一个DateTimeFormatter对象,指定日期时间的格式。 - 使用
format(dateTime)
方法将日期时间对象格式化为字符串。
- 使用
- 解析日期时间:
- 使用
parse(text)
方法将字符串解析为日期时间对象。
- 使用
- 格式化日期时间:
Date 转 LocalDate:
在将Date
对象转换为LocalDate
对象时,需要使用toInstant()
方法将Date
对象转换为Instant
对象,然后使用atZone()
方法将Instant
对象转换为ZonedDateTime
对象,最后通过toLocalDate()
方法获取LocalDate
对象。
Date date = new Date();
Instant instant = date.toInstant();
ZonedDateTime zonedDateTime = instant.atZone(ZoneId.systemDefault());
LocalDate localDate = zonedDateTime.toLocalDate();
需要注意的是,这种转换可能会有一些精度丢失,因为LocalDate
只包含年、月、日信息,而Date
包含了时分秒和毫秒信息。
LocalDate 转 Date:
在将LocalDate
对象转换为Date
对象时,需要使用atStartOfDay()
方法将LocalDate
对象转换为LocalDateTime
对象,然后使用atZone()
方法将LocalDateTime
对象转换为ZonedDateTime
对象,最后通过toInstant()
方法获取Instant
对象,并通过Date.from(instant)
将Instant
对象转换为Date
对象。
LocalDate localDate = LocalDate.now();
LocalDateTime localDateTime = localDate.atStartOfDay();
ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.systemDefault());
Instant instant = zonedDateTime.toInstant();
Date date = Date.from(instant);