JSR310 时间类型的相互转换

参数申明:

1   final Date date = new Date();
2   final Timestamp timestamp = new Timestamp(date.getTime());
3   final Calendar calendar = Calendar.getInstance();
4   final Instant instant = Instant.now();
5   final LocalDateTime localDateTime = LocalDateTime.now();
6   final ZonedDateTime zonedDateTime = ZonedDateTime.now();
7   final LocalDate localDate = LocalDate.now();

 

 

转Instant

 1     //Date转Instant
 2     Instant dateInstant = date.toInstant();
 3     //Timestamp转Instant
 4     Instant timestampInstant = timestamp.toInstant();
 5     //Calendar转Instant
 6     Instant calendarInstant = calendar.toInstant();
 7     //LocalDateTime转Instant
 8     Instant localDateTimeInstant = localDateTime.atZone(ZoneId.systemDefault()).toInstant();
 9     //ZonedDateTime转Instant
10     Instant zonedDateTimeInstant = zonedDateTime.toInstant();
11     //LocalDate转Instant
12     Instant localDateInstant = localDate.atStartOfDay(ZoneId.systemDefault()).toInstant();

 

转LocalDateTime

 1     //Date转LocalDateTime
 2     LocalDateTime dateLocalDateTime = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
 3     //Timestamp转LocalDateTime
 4     LocalDateTime timestampLocalDateTime = timestamp.toLocalDateTime();
 5     //Calendar转LocalDateTime
 6     LocalDateTime calendarLocalDateTime = LocalDateTime.ofInstant(calendar.toInstant(), ZoneOffset.systemDefault());
 7     //Instant转LocalDateTime
 8     LocalDateTime instantLocalDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
 9     //ZonedDateTime转LocalDateTime
10     LocalDateTime zonedDateTimeLocalDateTime = zonedDateTime.toLocalDateTime();
11     //LocalDate转LocalDateTime
12     LocalDateTime localDateLocalDateTime = localDate.atStartOfDay();

 

转ZonedDateTime

 1     //Date转ZonedDateTime
 2     ZonedDateTime dateZonedDateTime = ZonedDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
 3     //Timestamp转ZonedDateTime
 4     ZonedDateTime timestampZonedDateTime = ZonedDateTime.ofInstant(timestamp.toInstant(), ZoneId.systemDefault());
 5     //Calendar转ZonedDateTime
 6     ZonedDateTime calendarZonedDateTime = ZonedDateTime.ofInstant(calendar.toInstant(), ZoneId.systemDefault());
 7     //Instant转ZonedDateTime
 8     ZonedDateTime instantZonedDateTime = instant.atZone(ZoneId.systemDefault());
 9     //LocalDateTime转ZonedDateTime
10     ZonedDateTime localDateTimeZonedDateTime = localDateTime.atZone(ZoneId.systemDefault());
11     //LocalDate转ZonedDateTime
12     ZonedDateTime localDateZonedDateTime = localDate.atStartOfDay(ZoneId.systemDefault());

 

转Date

 1     //Timestamp转Date
 2     Date timestampDate = new Date(timestamp.getTime());
 3     //Calendar转Date
 4     Date calendarDate = calendar.getTime();
 5     //Instant转Date
 6     Date instantDate = Date.from(instant);
 7     //LocalDateTime转Date
 8     Date localDateTimeDate = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
 9     //ZonedDateTime转Date
10     Date zonedDateTimeDate = Date.from(zonedDateTime.toInstant());
11     //LocalDate转Date
12     Date localDateDate = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());

 

转Timestamp

 1     //Date转Timestamp
 2     Timestamp dateTimestamp = new Timestamp(date.getTime());
 3     //Calendar转Timestamp
 4     Timestamp calendarTimestamp = new Timestamp(calendar.getTimeInMillis());
 5     //Instant转Timestamp
 6     Timestamp instantTimestamp = Timestamp.from(instant);
 7     //LocalDateTime转Timestamp
 8     Timestamp localDateTimeTimestamp = Timestamp.valueOf(localDateTime);
 9     //ZonedDateTime转Timestamp
10     Timestamp zonedDateTimeTimestamp = Timestamp.from(zonedDateTime.toInstant());
11     //LocalDate转Timestamp
12     Timestamp localDateTimestamp = Timestamp.valueOf(localDate.atStartOfDay());

 

转Calendar

 1     //Date转Calendar
 2     Calendar dateCalendar = Calendar.getInstance();
 3     dateCalendar.setTime(date);
 4     //Timestamp转Calendar
 5     Calendar timestampCalendar = Calendar.getInstance();
 6     timestampCalendar.setTimeInMillis(timestamp.getTime());
 7     //Instant转Calendar
 8     Calendar instantCalendar = GregorianCalendar.from(ZonedDateTime.ofInstant(instant, ZoneId.systemDefault()));
 9     //LocalDateTime转Calendar
10     Calendar localDateTimeCalendar = GregorianCalendar.from(ZonedDateTime.of(localDateTime, ZoneId.systemDefault()));
11     //ZonedDateTime转Calendar
12     Calendar zonedDateTimeInstantCalendar = GregorianCalendar.from(zonedDateTime);
13     //LocalDate转Calendar
14     Calendar localDateCalendar = GregorianCalendar.from(localDate.atStartOfDay(ZoneId.systemDefault()));

 

转LocalDate

 1     //Date转LocalDate
 2     LocalDate dateLocalDate = LocalDate.ofInstant(date.toInstant(), ZoneId.systemDefault());  //jdk11
 3     LocalDate dateLocalDate = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault()).toLocalDate();
 4     //Timestamp转LocalDate
 5     LocalDate timestampLocalDate = timestamp.toLocalDateTime().toLocalDate();
 6     //Calendar转LocalDate
 7     LocalDate calendarLocalDate = LocalDate.ofInstant(calendar.toInstant(), ZoneOffset.systemDefault());  //jdk11
 8     LocalDate calendarLocalDate = LocalDateTime.ofInstant(calendar.toInstant(), ZoneOffset.systemDefault()).toLocalDate();
 9     //Instant转LocalDate
10     LocalDate instantLocalDate = LocalDate.ofInstant(instant, ZoneId.systemDefault());  //jdk11
11     LocalDate instantLocalDate = LocalDateTime.ofInstant(instant, ZoneId.systemDefault()).toLocalDate();
12     //LocalDateTime转LocalDate
13     LocalDate localDateTimeLocalDate = localDateTime.toLocalDate();
14     //ZonedDateTime转LocalDate
15     LocalDate zonedDateTimeLocalDate = zonedDateTime.toLocalDate();

 

posted @ 2017-06-16 14:27  傅晓芸  阅读(5002)  评论(3编辑  收藏  举报