Date转Java8新时间类
1.Date转LocalDate:
LocalDate表示日期,不包含时间和时区信息,例如"2022-04-22"。
1.使用java.util.Date
的toInstant()
方法将Date
对象转换为Instant
对象,再使用Instant
对象的atZone()
方法将其转换为ZonedDateTime
对象,最后使用ZonedDateTime
对象的toLocalDate()
方法将其转换为LocalDate
对象。
// 创建一个java.util.Date对象
Date date = new Date();
// 将java.util.Date转换为java.time.LocalDate
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
2.使用java.util.Date
的toInstant()
方法将Date
对象转换为Instant
对象,再使用Instant
对象的atOffset()
方法将其转换为OffsetDateTime
对象,最后使用OffsetDateTime
对象的toLocalDate()
方法将其转换为LocalDate
对象。
// 创建一个java.util.Date对象
Date date = new Date();
// 将java.util.Date转换为java.time.LocalDate
LocalDate localDate = date.toInstant().atOffset(ZoneOffset.UTC).toLocalDate();
3.使用java.util.Calendar
类将Date对象转换为LocalDate
对象。首先需要将Date
对象转换为Calendar
对象,然后使用Calendar
对象的get()
方法获取年、月、日等信息,最后使用LocalDate.of()
方法将其转换为LocalDate
对象。
// 创建一个java.util.Date对象
Date date = new Date();
// 将java.util.Date转换为java.time.LocalDate
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DAY_OF_MONTH);
LocalDate localDate = LocalDate.of(year, month, day)