java8时间API

java8时间API

1 例子

package com.javaTechnology;

import java.time.*;
import java.time.temporal.ChronoUnit;
import java.util.Set;

/**
 * @author LanceQ
 * @date 2022年05月29日 10:54
 * 任何方法都不会更改所操作的类
 */
public class TimeTest {
    public static void main(String[] args) {
        test(10);
        t1();
        t2();
        t3();
        t4();
    }
    /**
     * 时区
     */
    private static void t4() {
        ZonedDateTime now = ZonedDateTime.now();
        //输出当前时间包括时区:2022-05-29T11:55:12.764+08:00[Asia/Shanghai]
        System.out.println("输出当前时间包括时区:"+now);
        Set<String> availableZoneIds = ZoneId.getAvailableZoneIds();
        System.out.println("输出所有时区:"+availableZoneIds);

        ZonedDateTime of = ZonedDateTime.of(1969, 7, 16, 9, 32, 0, 0, ZoneId.of("Asia/Shanghai"));
        //输出时间包括时区:1969-07-16T09:32+08:00[Asia/Shanghai]
        System.out.println("输出时间包括时区:"+of);
        Instant instant = of.toInstant();
        //转换为默认时区:1969-07-16T01:32:00Z
        System.out.println("转换为默认时区:"+instant);

    }
    /**
     * 天数
     */
    private static void t3() {
        //获取当前天数
        LocalDate today = LocalDate.now();
        //2022-05-29
        System.out.println(today);
        LocalDate alonzosBirthday = LocalDate.of(1983, Month.JUNE, 14);
        //1983-06-14
        System.out.println(alonzosBirthday);
        //到现在经过了多少天
        long until = alonzosBirthday.until(today, ChronoUnit.DAYS);
        //到现在经过了多少天:14229
        System.out.println("到现在经过了多少天:"+until);
        //(从1到7)
        DayOfWeek dayOfWeek = today.getDayOfWeek();
        //今天星期几:7
        System.out.println("今天星期几:"+dayOfWeek.getValue());
        //星期六的3天后是星期几:2
        System.out.println("星期六的3天后是星期几:"+DayOfWeek.SATURDAY.plus(3).getValue());

        //得到255天后的时间
        LocalDate programmersDay = today.plusDays(255);
        //得到255天后的时间:2023-02-08
        System.out.println("得到255天后的时间:"+programmersDay);

        LocalTime now = LocalTime.now();
        //获取当前时间:11:55:12.756
        System.out.println("获取当前时间:"+now);
    }

    private static void t2() {
        //检查一个算法的速度是否是另一个算法的10倍以上
        Duration test = test(90);
        Duration test1 = test(1000);
        boolean overTheTimesFaster = test.multipliedBy(10).minus(test1).isNegative();
        //true
        System.out.println(overTheTimesFaster);

        boolean overTheTimesFaster1 = test.toNanos() * 10 < test1.toNanos();
        //true
        System.out.println(overTheTimesFaster1);
    }

    private static void t1() {
        //增加8小时
        Instant start = Instant.now();
        //增加后才是东8区的时间
        Instant later = start.plus(Duration.ofHours(8));
        System.out.println(start);
        //2022-05-29T03:52:27.878Z
        System.out.println(later);
        //2022-05-29T11:52:27.878Z
    }
    /**
     * 区间毫秒
     */
    private static Duration test(int number) {
        Instant start = Instant.now();
        runAlgorithm(number);
        Instant end = Instant.now();
        Duration timeElapsed = Duration.between(start, end);
        long millis = timeElapsed.toMillis();
        System.out.println("计算过去了多少时间毫秒:"+millis);
        return timeElapsed;
    }
    /**
     * 睡眠时间
     */
    private static void runAlgorithm(int number) {
        try {
            Thread.sleep(number);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 8 API是指在Java 8版本中引入的各种应用程序编程接口(API)。这些API是由Java开发团队创建的,用于帮助开发人员更轻松地编写Java程序。以下是一些Java 8 API的原码特点和功能: 1. Lambda表达式:Java 8引入了Lambda表达式,它是一种更为简洁的表示代码的方式。原码中包含了Lambda表达式的实现,开发者可以使用它们来编写更简洁、高效的代码。 2. Stream APIJava 8为集合框架引入了Stream API。这个API提供了一种新的处理集合元素的方式,可以进行过滤、映射、归约等操作。原码中包含了Stream API的实现,以便开发人员可以更好地利用它们。 3. 时间日期APIJava 8中引入了新的时间日期API,用于更好地处理日期、时间时间间隔。原码中包含了Date、Time、Instant等类的实现,开发者可以使用它们来进行时间日期相关的计算和格式化操作。 4. 接口的默认方法:Java 8允许接口中定义默认方法,这样实现该接口的所有类都会自动继承这些方法的实现。原码中包含了默认方法的实现,方便开发人员使用这种方式来扩展接口。 5. 函数式接口:Java 8引入了函数式接口的概念,即只包含一个抽象方法的接口。原码中包含了一些函数式接口的实现,方便开发人员使用它们来编写函数式编程风格的代码。 总之,Java 8 API的原码是用于实现Java 8版本提供的各种新功能的代码。这些功能包括Lambda表达式、Stream API时间日期API、接口的默认方法和函数式接口等。开发人员可以通过查看原码来了解这些功能的实现细节,并使用它们来编写更加高效和简洁的Java程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值