LocalDateTime、OffsetDateTime与Date之间转化,指定格式输出日期

可以贴代码到本地查看结果:

package tests;

import java.time.*;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.Locale;

public class testTimeConverter {

    public static void local2Date(){
        LocalDateTime local = LocalDateTime.now();
        /**
         * 1、使用Instant转换的方式,LocalDateTime -> Date
         */
        Instant instant = local.toInstant(ZoneOffset.of("+8"));
        Date date = Date.from(instant);
        System.out.println(date);
        //Wed Aug 04 17:37:39 CST 2021
        /**
         * Date -> LocalDateTime
         */
        Instant instant1 = date.toInstant();
        System.out.println(LocalDateTime.ofInstant(instant1, ZoneId.systemDefault()));
        //2021-08-04T18:00:03.304

        /**
         * 2、使用epochSecond的方式,LocalDateTime -> Date
         */
        long epochSecond = local.toEpochSecond(ZoneOffset.of("+8"));
        Date date2 = new Date();
        //这里setTime用的是ms,所以需要 *1000
        date2.setTime(epochSecond * 1000);
        System.out.println(date2);
        //Wed Aug 04 17:44:40 CST 2021
        /**
         * Date -> LocalDateTime
         */
        System.out.println(LocalDateTime.ofEpochSecond(date2.getTime() / 1000,0,ZoneOffset.UTC));
        //2021-08-04T10:07:45
    }

    public static void local2Offset(){
        OffsetDateTime offset = OffsetDateTime.now();
        LocalDateTime time = offset.toLocalDateTime();
        /**
         * LocalDateTime -> OffsetDateTime
         */
        System.out.println(time);
        //2021-08-04T17:53:21.617
        /**
         * OffsetDateTime -> LocalDateTime
         */
        System.out.println(time.atOffset(ZoneOffset.UTC));
        //2021-08-04T17:53:21.617Z
    }

    public static void formatTiming(){
        LocalDateTime now = LocalDateTime.now();
        /**
         * ISO格式,时/分/秒.毫秒
         */
        DateTimeFormatter formatter = DateTimeFormatter.ISO_TIME;
        String s = now.format(formatter);
        System.out.println(s);
        //18:11:06.941
        /**
         * yyyy-MM-dd形式输出日期
         */
        formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.CHINA);
        System.out.println(now.format(formatter));
        //2021-08-04
    }

    public static void main(String[] args) {
        local2Date();
        local2Offset();
        formatTiming();
    }
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值