java8新特性(时间)

java8新特性(时间)

1.获取当前时间

只获取日期(只获取当前的日期:如2022-05-24)

LocalDate today=LocalDate.now()

只获取时间(只获取当前的时间:如09:46:06)

LocalTime todaayTime = LocalTime.now();

获取具体时间(获取具体的时间:如2022-05-24T09:46:06)

LocalDateTime now = LocalDateTime.now();

获取具体时间和时区(如:2022-05-24T09:46:06.452+08:00[Asia/Shanghai])

ZonedDateTime now1 = ZonedDateTime.now();

2.获取java8中的年,月,日信息

获取当前单独的年,月,日

        //获取当前日期
        LocalDate now = LocalDate.now();
        //获取当前年
        int year = now.getYear();
        //获取当前月
        int monthValue = now.getMonthValue();
        //获取当前天
        int dayOfMonth = now.getDayOfMonth();

获取01-01到当前过去了多少天

int dayOfYear = now.getDayOfYear();

3.自定义时间(自己定义一个时间)

//不用添加0,会自动补上
LocalDate of = LocalDate.of(2022, 1, 9);

4.时间比较是否相等(使用string的equal方法)

        //时间相同,返回的true
        LocalDate of = LocalDate.of(2022, 5, 24);
        LocalDate now = LocalDate.now();
        boolean equals = now.equals(of);
        System.out.println(equals);

5.在Java 8中检查像生日这种周期性事件(当前日期和固定时间都要转化成MonthDay格式)

        //第一个为false,第二个weitrue
        LocalDate now = LocalDate.now();
        MonthDay from = MonthDay.from(now);
        MonthDay of = MonthDay.of(now.getMonthValue(), now.getDayOfMonth());
        System.out.println(of.equals(now));
        System.out.println(of.equals(from));

6.在当前的时间基础上增加,减少小时,分钟,秒

        //获取当前时间
        LocalTime now = LocalTime.now();
        //增加2个小时
        LocalTime localTime = now.plusHours(2);
        //增加30分钟
        LocalTime localTime1 = now.plusMinutes(30);
        //增加99秒
        LocalTime localTime2 = now.plusSeconds(99);

7.在当前时间基础上增加天,月,年、

        //获取当前日期
        LocalDate now = LocalDate.now();
        //获取7天后的日期
        LocalDate plus1 = now.plus(7, ChronoUnit.DAYS);
        //获取7个星期后的日期
        LocalDate plus = now.plus(7, ChronoUnit.WEEKS);
        //获取7个月后的日期
        LocalDate plus2 = now.plus(7, ChronoUnit.MONTHS);
        //获取7年后的日期
        LocalDate plus3 = now.plus(7, ChronoUnit.YEARS);

8.获取当前时间基础上减少天,月,年

        //获取当前日期
        LocalDate now = LocalDate.now();
        //获取7天前的日期
        LocalDate minus = now.minus(7, ChronoUnit.DAYS);
        //获取7个星期前的日期
        LocalDate minus1 = now.minus(7, ChronoUnit.WEEKS);
        //获取7年前的日期
        LocalDate minus2 = now.minus(7, ChronoUnit.YEARS);

9.使用Java 8的Clock时钟类获取时间戳(主要用来处理不同的时区)

        Clock clock = Clock.systemUTC();
        System.out.println(clock);
        Clock clock1 = Clock.systemDefaultZone();
        System.out.println(clock1);

10.时间的比较(isbefor如果time1在time2之前返回true,isagter如果time1在time2之后返回true)

        //第一个返回true,第二个flase
        LocalDate time1 = LocalDate.of(2022, 3, 20);
        LocalDate time2 = LocalDate.now();
        boolean before = time1.isBefore(time2);
        boolean after = time1.isAfter(time2);

11.在Java 8中处理时区

暂不添加

12.获取当前年和月,获取当前月的天数


        //获取当前年月
        YearMonth now = YearMonth.now();
        //获取当前月的天数
        int i = now.lengthOfMonth();

13.判断当前年份是否为闰年

boolean leapYear = now.isLeapYear();

14.判断两个日期之前相差多少天,月,年

        LocalDate now = LocalDate.now();
        LocalDate plus1 = now.plus(7, ChronoUnit.DAYS).plus(7,ChronoUnit.WEEKS);
        //获取相差多久
        Period between = Period.between(now, plus1);
        //获取相差几月
        between.getMonths();
        //获取相差几天
        between.getDays();
        //获取相差几年
        between.getYears();

15.包含时差信息的日期和时间

暂不添加

16.获取当亲的时间戳

        Instant now = Instant.now();
        //date和instant的相互转换
        Date.from(Instant);
        Date.toInstant();

17.使用预定义的格式化工具去解析或格式化日期

        String  time="20200125";
        //将字符串转化成时间格式
        LocalDate parse = LocalDate.parse(time, DateTimeFormatter.BASIC_ISO_DATE);
        System.out.println(parse);

18.在Java中使用自定义格式化工具解析日期

        String  time="2022-02-25";
        LocalDate parse = LocalDate.parse(time, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
        System.out.println(parse);

19.将日期转化成字符串

        LocalDate now = LocalDate.now();
        String format = now.format(DateTimeFormatter.ofPattern("yyyyMMdd"));
        System.out.println(format);

20.date,calendar,localtime,localdate的相互转换

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值