Java常用类Arrays、Date和Calendar类

Java

一、Arrays类

Arrays
该类包含用于操作数组的各种方法(如排序和搜索)。
该类还包含一个静态工厂,可以将数组视为列表。
如果指定的数组引用为空,则该类中的方法都抛出一个NullPointerException。

sort():排序的
toString():将数组以字符串的形式输出
binarySearch():在制定数组中,查找制定的元素出现的位置,如果没有找到,就返回为-1
                要求数组中的元素必须是有序的
fill(int[] a,int val):将指定的类型值分给指定的int类型数组中的每一个元素

二分查找的方法

 public static void main(String[] args) {
        List<String> list = Arrays.asList("张三","张四","张五","张六");
        for(int i = 0; i < list.size(); i++){
            System.out.println(list.get(i));
        }

        String[] name = {"欧阳","轩辕","上官","慕容"};

        //s  m  o  x
        Arrays.sort(name);
        //在进行二分查找之前先进行排序
        System.out.println(Arrays.toString(name));
        int index = Arrays.binarySearch(name,"慕容狗蛋");
        System.out.println(index);

        int[] arr = {10,2,5,4,33,25,11,16,88,90};
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));
        int index2 = Arrays.binarySearch(arr,11);
        System.out.println(index2);

二、Date相关类

Date类的解析:
Date类表示特定的瞬间时间,精确到毫秒
之前学习过一个System的方法:public static long currentTimeMillis()
可以获取当前系统时间的毫秒数

构造方法:
    Date()
    Date(long l)

long类型和date类型之间的相互转换
long ---> Date 使用的是Date(long t)的构造函数
Date ---> long 使用getTime()方法将日期对象转换成时间的毫秒值

boolean after(Date when):测试此日期是否在指定日期之后
boolean before(Date when):测试此日期是否在指定日期之前
int compareTo(Date anotherDate) 比较两个日期
    返回为0表示两个日期相同,如果返回小于0表示调用的日期在参数日期之前
    返回值大于0 表示调用方法日期在参数日期之后

DateFormat:时间格式化
是日期/时间格式化的抽象类
是日期/时间格式化子类的抽象类,它以语言无关的方式格式化和分析日期或时间。
日期/时间格式化子类(如SimpleDateFormat )允许格式化(即日期文本),
解析(文本日期)和归一化。 该日期表示为一个Date对象,
或自1970年1月1日00:00:00 GMT以来的毫秒。
SimpleDateFormat:是DateFormat的直接子类

作用:
    Date ---格式化format ---> String
    String ---解析parse ----> Date

DateFormat是一个抽象类,不能创建对象
学习它的子类SimpleDateFormat
1、如何创建子类对象
    子类的构造函数
    SimpleDateFormat()
    SimpleDateFormat(String pattern)
    SimpleDateFormat(String pattern , Locale locale)
2、调用什么方法进行格式化
    String format(Date date) 将日期格式化成日期/时间字符串
    y 年
    M 年中的月份
    w 年中的周数
    W 月份中的周数
    D 年中的天数
    d 月中的天数
    F 月份中的星期
    E 星期中的天数
    a Am/pm标志
    H 一天中的小时(0 ~ 23)
    k 一天中的小时数(1 ~ 24)
    K am/pm中的小时数(0 - 11)
    h am/pm中的小时数(1 - 12)
    m 小时中的分钟数
    s 分钟中的秒数
    S 毫秒数
    z 时区
 public static void main(String[] args) {
        Date date = new Date();
        //直接获取到当前的日期和时间
        System.out.println(date);//Wed Mar 23 14:10:03 CST 2022

        //获取到当前系统时间的毫秒数
        System.out.println(System.currentTimeMillis());//1648015844148

        //将毫秒数给到date的构造函数中,能够将毫秒数转换成日期
        Date date1 = new Date(1648015844148L);
        System.out.println(date1);//Wed Mar 23 14:10:44 CST 2022

        File file = new File("D:\\j2201\\新建文本文档.txt");
        //文件最后修改时间的方法
        long f = file.lastModified();
        System.out.println("f = " + f);
        Date date2 = new Date(f);
        System.out.println(date2);
    }

三、Calendar日历类

Calendar:日历
在Date类之后出现的,替换调用了Date类中的很多方法,所以Date类中的方法过时了
查看API可以发现Calendar是一个抽象类
方式1:
通过静态方法创建
static Calendar getInstance();
方式2:
子类进行创建GregorianCalendar

        //Calendar.YEAR 年
        //Calendar.MONTH 月 从0 - 11
        //Calendar.DATE 日
        //Calendar.HOUR 小时
        //Calendar.MINUTE 分钟
        //Calendar.SECOND 秒
        //Calendar.DAY_OF_WEEK 星期几
        //Calendar.DAY_OF-MONTH 几号
        //Calendar.DAY_OF_YEAR 一年的第几天

题目:计算你活着的天数:

//创建一个当前的日期
        Calendar now = Calendar.getInstance();
        //创建一个你出生时候的日期
        Calendar birthday = Calendar.getInstance();
        birthday.set(1993,10,12);
        //两个日期的毫秒数相减,就是你活得毫秒数
        //当前的时间转换的毫秒数
        long t1 = now.getTimeInMillis();
        //出生的时间转换成毫秒数
        long t2 = birthday.getTimeInMillis();
        long day = (t1 - t2) / 1000 / 60 / 60 / 24;
        //去API中找有没有一个方法能够将Calendar转换成long
        //再把毫秒数转换成你活得天数
        System.out.println("你已在世界上生活了" + day + "天");
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小猿king

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值