常用API②---日期和时间,比较器

目录

日期和时间

System里的

两个Date(继承关系)

Simple Date Format类日期时间的格式化和解析

利用构造器指定输出格式

Calendar日历类(抽象类)

实例化:

常用方法

JDK8中的API

比较器

自然排序

定制排序

两种排序的区别


日期和时间

System里的

public class api {
    public static void main(String[] args) {
        System.out.println(System.currentTimeMillis());
    }
}

获取当前的时间戳,long类型,当前时间与1970年1月1日0时0分0秒的毫秒级时间差,可以用来计算时间差 

两个Date(继承关系)

|-->Java.util.Date

        >两个构造函数 空参构造函数:创建基于当前时间的对象

                                long类型的构造函数,创建基于指定时间的对象

       >两个方法 tostring()打印时间getTime()得到long类型的毫秒数

                |--->Java.sql.Date数据库里的Date

Simple Date Format类日期时间的格式化和解析

public class day {
    @Test
    public void test() throws ParseException {
        //格式化时间   Date--->String
        SimpleDateFormat sdf=new SimpleDateFormat();
        Date date1=new Date();
        String format = sdf.format(date1);
        System.out.println(format);
        //解析       string--->Date
        Date date2=sdf.parse("2023/7/16 下午6:30");
        System.out.println(date2);
    }

}

利用构造器指定输出格式

年-->yyyy

月-->MM

日-->dd:一个月中的,DD:一年中的

时-->hh:12进制,HH24进制

分-->mm

秒-->s

毫秒-->S 

    @Test
    public void test() throws ParseException {
        //格式化时间   Date--->String
        SimpleDateFormat sdf=new SimpleDateFormat("yyy.MM.dd");
        Date date1=new Date();
        String format = sdf.format(date1);
        System.out.println(format);
        //解析       string--->Date
        Date date2=sdf.parse("2023.7.16");
        System.out.println(date2);
    }

 

Calendar日历类(抽象类)

实例化:

由于日历类是一个抽象类,需要创建子类实例,治理我们通过Calendar的静态方法getInstance()来获取,

Calendar instance = Calendar.getInstance();

常用方法

get(int field)得到当前对象时当前年/月/周/的第几天

set(int field  ,  ××)设置当前对象时当前年/月/周/的第几天

add(int field  ,  ××)增加当前对象时当前年/月/周/的天数

getTime()把calendar转换为Date

setTime()使用指定的Date重置Calenda

JDK8中的API

1. LocalDate,LocalTime,LocalDateTime --->类似于Calendar
> 实例化:now() / of(xxx,xx,xx)(静态方法)
> 方法:geXxx(t() 返回一些属性 是年月周的第几天,是第几个月周
       withXxx()设置成是年月周的第几天,返回一个新的对象,原来对象没改变
       plusXxx()加上...年月日,返回一个新的对象,原来对象没改变
       minusXxx()减去...年月日,返回一个新的对象,原来对象没改变

2. Instant:瞬时 --->类似于Date
> 实例化:now() 得到现在标准UTC时间的instant对象
        ofEpochMilli(long) 得到1970/1/1/00:00:00加上对应毫秒数的instant对象
> 方法:toEpochMilli() 获取当前时间到1970/1/1/00:00:00的毫秒数

3. DateTimeFormatter ---> 类似于SimpleDateFormat
用于格式化和解析LocalDate,LocalTime,LocalDateTime

比较器

自然排序

实现Comparable接口:

具体的类A实现Comparable接口,重写compareTo(Object obj)方法,在方法中指明比较大小的标准

定制排序

实现Comparator接口

重写抽象方法compare(Object obj1 , Object obj2),在此方法中要指明要比较的对象的类型(instance of)

两种排序的区别

自然排序    单一的唯一的一劳永逸的
定制排序灵活的多样的临时的

自然排序   实现Comparable接口,重写抽象方法compareTo(Object obj)
定制排序

实现Comparator接口重写抽象方法compare(Object obj1 , Object obj2)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不爱吃于先生

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

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

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

打赏作者

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

抵扣说明:

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

余额充值