- 老版本中java.util.Date转化为LocalDate
//老项目中data类
Date d = new Date();
//jdk8中的Instant类
Instant i = d.toInstant();
//添加时区
ZonedDateTime zonedDateTime = i.atZone(ZoneId.systemDefault());
//将ZonedDateTime转化为localDate
LocalDate localDate = zonedDateTime.toLocalDate();
System.out.println(d);
System.out.println(localDate);
2.老版本的java.sql.Date转化为LocalDate
//初始化sql.data类
Date date = new Date(System.currentTimeMillis());
//java.sql.Date;类中自带toLocalDate
LocalDate localDate = date.toLocalDate();
System.out.println(date);
System.out.println(localDate);
sql.date类只需要在初始化的时候加上currentTimeMillis,然后调用自带的toLocalDate方法就可以了
3.java.sql.Timestamp类中也自带了toLocalDateTime方法,只要加上当前时间
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
LocalDateTime localDateTime = timestamp.toLocalDateTime();
System.out.println(timestamp);
System.out.println(localDateTime);
4.util.date 通过转化为sql.date类,然后调用tolocaldate方法
//这是util.date类型的Date
Date date = new Date();
java.sql.Date date1 = new java.sql.Date(date.getTime());
LocalDate localDate = date1.toLocalDate();
System.out.println(date);
System.out.println(localDate);
5.calendar类转化为time
//1 . 初始calender
Calendar calendar = Calendar.getInstance();
//2 获取calendar中的时区
TimeZone timeZone = calendar.getTimeZone();
//3 .jdk1.8 开始TimeZone类提供一个方法获取ZoneId对象
ZoneId zoneId = timeZone.toZoneId();
//4. 用获取到ZoneId对象和calendar的toInstant方法构建ZoneDateTime
ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(calendar.toInstant(), zoneId);
System.out.println(calendar);
System.out.println(zonedDateTime);
如果腰获得LocalTime,只需要调用ZonedDateTime的toLocalTime方法
之所以要转化为jdk1.8的time类是因为新的时间类提供了更多方便的方法。具体可以查看LocalDate 、LocalDateTime、ZonedDateTime的源码,里边有许多plus、with方法