java8操作时间

本文详细介绍了Java中的LocalDateTime类的各种操作,包括获取当前时间、指定时间、日期转换、时间加减、时间格式化、日期调整以及毫秒和秒的转换等。此外,还展示了如何将字符串转换为LocalDateTime以及使用TemporalAdjusters进行日期计算。对于Java开发者来说,是理解日期时间操作的重要参考。
摘要由CSDN通过智能技术生成
LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println("当前时间:" + localDateTime);//2020-12-08T11:19:04.305

        LocalDateTime localDateTime1 = LocalDateTime.of(2020, 06, 02, 12, 22, 23);
        System.out.println("指定时间:" + localDateTime1);//2020-06-02T12:22:23

        //手动指定时间 当天0点 方法一(缺点:毫秒未归0)
        LocalDateTime localDateTime11 = LocalDateTime.now().withHour(0).withMinute(0).withSecond(0);
        System.out.println("手动指定日期时间当天0点:" + localDateTime11);//2020-12-08T00:00:00.306
       //手动指定时间 当天0点 方法二
        LocalDateTime today_start = LocalDateTime.of(LocalDate.now(),LocalTime.MIN);
        System.out.println("手动指定日期时间当天0点:" + today_start );//2020-12-08T00:00


        //指定当前周一
        LocalDateTime monday= LocalDateTime.now().with(DayOfWeek.MONDAY);

        LocalDateTime localDateTime2 = LocalDateTime.now().plusMonths(2);
        System.out.println("当前时间添加2月:" + localDateTime2);//2021-02-08T11:19:04.306

        LocalDateTime localDateTime3 = LocalDateTime.now().minusDays(2);
        System.out.println("当前时间减少2天:" + localDateTime3);//2020-12-06T11:19:04.306

        // 获取秒数
        Long second = LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8"));
        System.out.println("获取秒数" + second);//1607397544

        // 获取毫秒数方法1
        Long milliSecond = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
        System.out.println("获取毫秒数1:" + milliSecond);//1607397544306
        // 或者
        ZoneOffset zoneOffset = endTime.atZone(ZoneOffset.systemDefault()).getOffset();
        Long milliSecond1 = LocalDateTime.now().toInstant(zoneOffset).toEpochMilli();
        System.out.println("获取毫秒数1:" + milliSecond1);//1607397544306

        //获取毫秒数方法2
        long milliSecond2 = Instant.now().toEpochMilli();
        System.out.println("获取毫秒数2:" + milliSecond2);//1607397544307

        
        //long转LocalDateTime
        LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(milliSecond2), ZoneOffset.of("+8"));//2021-01-05T23:59:59.999


LocalDateTime localDateTime21 = LocalDateTime.now().withDayOfMonth(10);
        System.out.println("手动指定日期时间:" + localDateTime21);//2020-12-10T11:19:04.307

        LocalDateTime with = LocalDateTime.now().with(TemporalAdjusters.firstDayOfMonth());
        System.out.println("使用TemporalAdjuster获取当月第一天:" + with);//2020-12-01T11:19:04.307

        System.out.println("获取下一年的第一天:" + localDateTime.with(TemporalAdjusters.firstDayOfNextYear()));//2021-01-01T11:19:04.305
        System.out.println("获取年中最后一天" + localDateTime.with(TemporalAdjusters.lastDayOfYear()));//2020-12-31T11:19:04.305

        System.out.println("获取月中第一天" +localDateTime.with(TemporalAdjusters.firstDayOfMonth()));
        System.out.println("获取月中最后一天" + localDateTime.with(TemporalAdjusters.lastDayOfMonth()));//2020-12-31T11:19:04.305
        System.out.println("获取下个星期一" + localDateTime.with(TemporalAdjusters.next(DayOfWeek.MONDAY)));//2020-12-14T11:19:04.305

        // 也可自定义格式
        DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        // 两种写法效果一样
        System.out.println("自定义格式化日期一:"+formatter1.format(LocalDateTime.now()));//2020-12-08 11:19:04
        System.out.println("自定义格式化日期二:"+LocalDateTime.now().format(formatter1));//2020-12-08 11:19:04

        // 字符串转换时间
        LocalDateTime parse = LocalDateTime.parse("2020-12-08 11:18:00", formatter1);
        System.out.println("字符串转日期:"+parse);//2020-12-08T11:18

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值