2022-07-28 第八小组 常竞文

发布于:2022-07-29 ⋅ 阅读:(322) ⋅ 点赞:(0)

常用API

API(Application Programming Interface)应用程序接口

JDK给我们提供的一些已经写好的类,我们可以直接调方法来解决问题

String(可以叫API接口)

我们类的方法,在宏观上都可以称为接口

API文档,用来介绍API

时间相关的API

时间:

格林尼治天文台

时区:东八区

北京时间

时间戳:格林尼治时间1970.1.1 00:00:00 到尽头2022.7.28 9:29:30 的毫秒数

1s = 1000ms , 1min = 60s , 1h = 60min , 1day =24h。

时间戳在全世界都是固定的。忽略了时区等

System.currentTimeMillis()

日期类 Date

获取系统当前日期时间

Date date = new Date();
System.out.println(date);

 compareTo

当返回负数时,说明调用者时间是在参数时间之前

当返回0时,说明调用者时间和参数时间相同

当返回正数时,说明调用者时间在阐述时间之后

Date date1 = new Date(1658974415756L); // 10:13:35
        Date date2 = new Date();
  System.out.println(date1.compareTo(date2));

日历类:日期,时间

Calendar是一个抽象类,能new不能创建对象

初始化;

提供了一组对“年月日、时分秒、星期”等信息的操作函数。可以操作不同时区的信息。

JDK1.1版本开始,在处理时间和日期时,系统推荐使用Calendar类

Calendar要比Date强大的多

除非要获取的年月日十分秒一次性拿取,否则一律用calendar

 public static void main(String[] args) {
            //向上转型
        Calendar calendar = Calendar.getInstance();
            //获取哪年
        System.out.println(calendar.get(Calendar.YEAR));
            //获取今年过了多少天
        System.out.println(calendar.get(Calendar.DAY_OF_YEAR));
            //24小时
        System.out.println(calendar.get(Calendar.DATE));
            //12小时
        System.out.println(calendar.get(Calendar.MONTH));
        System.out.println(calendar.get(Calendar.HOUR_OF_DAY));
        System.out.println(calendar.get(Calendar.HOUR));
        System.out.println(calendar.get(Calendar.MILLISECOND));
    }

Zoneld

获得某一时区的id

 ZoneId zoneId = ZoneId.of("America/New_York");
        System.out.println(TimeZone.getTimeZone(zoneId));

日期格式化(SimpleDateFormat)

format:格式化Date类型,把Date类型转成String类型

我们要展示数据到客户端

parse:把String类型的时间,转成Date类型

从客户端传过来的时间,一般都是String类型,存入数据库。

 Date date = new Date();
        System.out.println(date);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
        String s = sdf.format(date);
        System.out.println(s);

yyyy代表年,yy代表年的后两位

MM代表月

dd代表日

HH代表小时(24小时制) hh代表小时(12小时制)

mm代表分

ss代表秒

SSS代表毫秒

工具类的方法都是静态

JDK8的日期时间类

在JDK8之前,处理日期和时间,基本上就是用我们上面的几个类

Date和Calendar,获取到的月份都是0-11,而不是我们生活中的1-12

阿里巴巴规约的明确要求:

如果是JDK8的应用,可以使用Instant来代替Date,

LocalDateTime代替Calendar,

DateTimeFormatter代替SimpleDateFormat

新的时间类

Instant

LocalDate

LocalTime

DateTimeFormatter

获取秒数

System.out.println(instant.getEpochSecond());

获取毫秒数

 System.out.println(instant.toEpochMilli());
        long millis = System.currentTimeMillis();
        System.out.println(Instant.ofEpochMilli(millis));

持续时间Duration

public class Ch02 {

    public static void main(String[] args) {
        Instant instant = Instant.now();
        Instant plus = instant.plus(Duration.ofDays(5));
        System.out.println(plus);
    }
}

获取当前日期:LocalDate

  LocalDate now = LocalDate.now();
        System.out.println(now);
        System.out.println(now.getMonth());
        System.out.println(now.getDayOfWeek());
        System.out.println(now.getDayOfMonth());
        LocalDate of = LocalDate.of(2024, 9, 10);
        System.out.println(of);

判断是否为闰年

 System.out.println(of.isLeapYear());

本地时间LocalTime

public static void main(String[] args) {
        LocalTime now = LocalTime.now();
        System.out.println(now);

    }

获取日期和时间

 public static void main(String[] args) {
        System.out.println(LocalDateTime.now());
    }

处理日期的格式化问题DateTimeFormatter

public static void main(String[] args) {
        LocalDate now = LocalDate.now();
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日");

        System.out.println(now.format(dateTimeFormatter));
    }

把Instant转成Date

 Date date = Date.from(instant);

把Date转成Instant

 Instant toInstant = date.toInstant();

把Instant转成LacalDateTime

LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
 // 把LocalDateTime转成Instant
        Instant instant1 = LocalDateTime.now().toInstant(ZoneOffset.UTC);

        // 把date转成LocalDateTime
        Date date1 = new Date();
        Instant instant2 = date.toInstant();
        LocalDateTime localDateTime1 = LocalDateTime.ofInstant(instant2, ZoneId.systemDefault());

        // 把LocalDateTime转成Date
        LocalDateTime now = LocalDateTime.now();
        Instant instant3 = now.atZone(ZoneId.systemDefault()).toInstant();
        Date date2 = Date.from(instant3);

BigDecimal统计类

 public static void main(String[] args) {
        double d1 = 0.7;
        double d2 = 0.1;
        BigDecimal bigDecimal1 = new BigDecimal(d1);
        BigDecimal bigDecimal2 = new BigDecimal(d2);

        // 使用BigDecimal的构造器,开发中,传入的参数必须是字符串
        BigDecimal bigDecimal3 = new BigDecimal("0.7");
        BigDecimal bigDecimal4 = new BigDecimal("0.1");

        System.out.println(bigDecimal3.add(bigDecimal4));
    }

随机类Random

 public static void main(String[] args) {
        Random random = new Random();
        System.out.println(random.nextDouble());

    }

Arrays数组的工具类

 public static void main(String[] args) {
        int [] arr = new int[]{1,2,3,4,5};
        System.out.println(Arrays.toString(arr));
            //数组的排序
        Arrays.sort(arr);
            //数组的查找
        System.out.println(Arrays.binarySearch(arr, 4));
            //数组的拷贝
        int[] ints = Arrays.copyOf(arr, 2);
        System.out.println(Arrays.toString(ints));
            //数组的比较
        System.out.println(Arrays.equals(arr, ints));
    }

 

本文含有隐藏内容,请 开通VIP 后查看