Please enable Javascript to view the contents

Java中各种时间类型相互转换

 ·  ☕ 3 分钟  ·  🤖 liuwenxu · 👀... 阅读

Java中各种时间类型相互转换

参数声明:

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

转Instant

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
    //Date转Instant
    Instant dateInstant = date.toInstant();

    //Timestamp转Instant
    Instant timestampInstant = timestamp.toInstant();

    //Calendar转Instant
    Instant calendarInstant = calendar.toInstant();

    //LocalDateTime转Instant
    Instant localDateTimeInstant = localDateTime.atZone(ZoneId.systemDefault()).toInstant();

    //ZonedDateTime转Instant
    Instant zonedDateTimeInstant = zonedDateTime.toInstant();

    //LocalDate转Instant
    Instant localDateInstant = localDate.atStartOfDay(ZoneId.systemDefault()).toInstant();

转LocalDateTime

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
   //Date转LocalDateTime
    LocalDateTime dateLocalDateTime = 	     LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());

    //Timestamp转LocalDateTime
    LocalDateTime timestampLocalDateTime = timestamp.toLocalDateTime();

    //Calendar转LocalDateTime
    LocalDateTime calendarLocalDateTime = LocalDateTime.ofInstant(calendar.toInstant(), ZoneOffset.systemDefault());

    //Instant转LocalDateTime
    LocalDateTime instantLocalDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());

    //ZonedDateTime转LocalDateTime
    LocalDateTime zonedDateTimeLocalDateTime = zonedDateTime.toLocalDateTime();

    //LocalDate转LocalDateTime
    LocalDateTime localDateLocalDateTime = localDate.atStartOfDay();

转ZonedDateTime

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
   //Date转ZonedDateTime
    ZonedDateTime dateZonedDateTime = ZonedDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());

    //Timestamp转ZonedDateTime
    ZonedDateTime timestampZonedDateTime = ZonedDateTime.ofInstant(timestamp.toInstant(), ZoneId.systemDefault());

    //Calendar转ZonedDateTime
    ZonedDateTime calendarZonedDateTime = ZonedDateTime.ofInstant(calendar.toInstant(), ZoneId.systemDefault());

    //Instant转ZonedDateTime
    ZonedDateTime instantZonedDateTime = instant.atZone(ZoneId.systemDefault());

    //LocalDateTime转ZonedDateTime
    ZonedDateTime localDateTimeZonedDateTime = localDateTime.atZone(ZoneId.systemDefault());

    //LocalDate转ZonedDateTime
    ZonedDateTime localDateZonedDateTime = localDate.atStartOfDay(ZoneId.systemDefault());

转Date

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
    //Timestamp转Date
    Date timestampDate = new Date(timestamp.getTime());

    //Calendar转Date
    Date calendarDate = calendar.getTime();

    //Instant转Date
    Date instantDate = Date.from(instant);

    //LocalDateTime转Date
    Date localDateTimeDate = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());

    //ZonedDateTime转Date
    Date zonedDateTimeDate = Date.from(zonedDateTime.toInstant());

    //LocalDate转Date
    Date localDateDate = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());

转Timestamp

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
    //Date转Timestamp
    Timestamp dateTimestamp = new Timestamp(date.getTime());

    //Calendar转Timestamp
    Timestamp calendarTimestamp = new Timestamp(calendar.getTimeInMillis());

    //Instant转Timestamp
    Timestamp instantTimestamp = Timestamp.from(instant);

    //LocalDateTime转Timestamp
    Timestamp localDateTimeTimestamp = Timestamp.valueOf(localDateTime);

    //ZonedDateTime转Timestamp
    Timestamp zonedDateTimeTimestamp = Timestamp.from(zonedDateTime.toInstant());

    //LocalDate转Timestamp
    Timestamp localDateTimestamp = Timestamp.valueOf(localDate.atStartOfDay());

转Calendar

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
    //Date转Calendar
    Calendar dateCalendar = Calendar.getInstance();
    dateCalendar.setTime(date);

    //Timestamp转Calendar
    Calendar timestampCalendar = Calendar.getInstance();
    timestampCalendar.setTimeInMillis(timestamp.getTime());

    //Instant转Calendar
    Calendar instantCalendar = GregorianCalendar.from(ZonedDateTime.ofInstant(instant, ZoneId.systemDefault()));

    //LocalDateTime转Calendar
    Calendar localDateTimeCalendar = GregorianCalendar.from(ZonedDateTime.of(localDateTime, ZoneId.systemDefault()));

    //ZonedDateTime转Calendar
    Calendar zonedDateTimeInstantCalendar = GregorianCalendar.from(zonedDateTime);

    //LocalDate转Calendar
    Calendar localDateCalendar = GregorianCalendar.from(localDate.atStartOfDay(ZoneId.systemDefault()));

转LocalDate

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    //Date转LocalDate
    LocalDate dateLocalDate = LocalDate.ofInstant(date.toInstant(), ZoneId.systemDefault());  //jdk11

    LocalDate dateLocalDate = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault()).toLocalDate();

    //Timestamp转LocalDate
    LocalDate timestampLocalDate = timestamp.toLocalDateTime().toLocalDate();

    //Calendar转LocalDate
    LocalDate calendarLocalDate = LocalDate.ofInstant(calendar.toInstant(), ZoneOffset.systemDefault());  //jdk11

    LocalDate calendarLocalDate = LocalDateTime.ofInstant(calendar.toInstant(), ZoneOffset.systemDefault()).toLocalDate();

    //Instant转LocalDate
    LocalDate instantLocalDate = LocalDate.ofInstant(instant, ZoneId.systemDefault());  //jdk11

    LocalDate instantLocalDate = LocalDateTime.ofInstant(instant, ZoneId.systemDefault()).toLocalDate();

    //LocalDateTime转LocalDate
    LocalDate localDateTimeLocalDate = localDateTime.toLocalDate();

    //ZonedDateTime转LocalDate
    LocalDate zonedDateTimeLocalDate = zonedDateTime.toLocalDate();
分享
您的鼓励是我最大的动力
alipay QR Code
wechat QR Code

Wenxu.Liu
作者
liuwenxu
Java Developer