前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java中各种时间类型相互转换

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

作者头像
Java那些事儿
发布2020-07-21 14:41:56
5.9K0
发布2020-07-21 14:41:56
举报
文章被收录于专栏:Java那些事儿Java那些事儿

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

参数声明:

代码语言:javascript
复制
  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

代码语言:javascript
复制
    //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

代码语言:javascript
复制
   //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

代码语言:javascript
复制
   //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

代码语言:javascript
复制
    //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

代码语言:javascript
复制
    //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

代码语言:javascript
复制
    //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

代码语言:javascript
复制
    //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();

Q.E.D.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-04-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 参数声明:
  • 转Instant
  • 转LocalDateTime
  • 转ZonedDateTime
  • 转Date
  • 转Timestamp
  • 转Calendar
  • 转LocalDate
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档