一、JDK8之前的日期和时间的API

1.System类中的currentTimeMillis();返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差

2.Java.util.Date类

两个构造器的使用

构造器一:Date():创建一个对应当前时间的Date对象

构造器二:创建指定毫秒数的Date对象

两个方法的使用

toString():显示当前的年月日时分秒

getTime():获取当前Date对象对应的毫秒数(时间戳)

3.SimpleDateFormat类

格式化:日期—>字符串 format

解析:格式化的逆过程,字符串---->日期(要求字符串必须符合SimpleDateFormat识别的格式(通过构造器参数体现))parse

4.LocalDate,LocalTime,LocalDateTime类的使用

now()/now(Zoned zone)静态方法,根据当前时间创建对象/指定时区的对象

of()静态方法 根据指定日期/时间创建对象

getDayOfMonth()/getDayOfYear()获取月份天数(1-31)/获取年份天数(1-366)

getDayOfWeek()获取星期几(返回ygeDayOfWeek枚举值)

getMonth获取月份,返回一个Month枚举值

getMonthValue()/getYear()获取月份(1-12)/获取年份

getHour()/getMinute()/getSecond()获取当前对象对应的小时、分钟、秒

withDayOfMonth()/withDayOfYear()/withMonth()/withYear()将月份天数、年份天数、月份、年份、修饰该为指定的值并返回新的对象

plusDays(),p;usWeeks(),plusMonths(),plusYears(),plusHours()向当前对象添加几天、几周、几个月、几年、几小时

**minusMonths()/minusWeeks()/minusDays()/minusYears()/minusHours()从当前对象减去几月、几周、几天、几年、几小时

5.instant类 瞬时

now()静态方法,返回默认UTC时区的Instant类的对象

ofEpochMilli(long epochMilli)静态方法,返回在1970-01-01 00:00:00基础上加上指定毫秒数之后的Instant类的对象

atOffset(ZoneOffset offset)结合即时的偏移来创建一个OffsetDateTime

toEpochMilli()返回1970-01-01 00:00:00到当前时间的毫秒数,即为时间戳

6.DateTimeFormatter类 格式化与解析日期和时间

ofPattern(String pattern)静态方法,返回一个指定字符出格式的DateTimeFormatter

format(TemporalAccessort)格式化一个日期,时间,返回字符串

parse(CharSequencetext)将指定格式的字符序列解析为一个日期和时间

二、java比较器

1.像String,包装类等实现了Comparable接口,重写了compareTo(obj)方法,给出了比较两个对象的方法

2.像String,包装类重写compareTo()方法以后,进行了从小到大的排列

3.重写compareTo(obj)的规则

如果当前对象this大于形参对象obj,则返回正整数

如果当前对象this小于形参对象obj,则返回负整数

如果当前对象this等于形参对象obj,则返回零

4.对于自定义说,如果需要排序,我们可以让自定义类实现Comparable接口,重写compareTo()方法,再compareTo(obj)方法中指明如何进行排序

java date求月份的最大日期时间戳 java的日期比较大小_字符串


java date求月份的最大日期时间戳 java的日期比较大小_当前对象_02


java date求月份的最大日期时间戳 java的日期比较大小_java_03

5.Comparator接口的使用:定制排序
背景:
当元素类型内有实现java.lang.Comparable接口而不方便修改代码或者实现了java.lang.Comparable接口的排序规则不适合当前操作,那么可以考虑使用Comparator的对象来排序
重写compare(Object o1,Object o2)的方法,比较o1和o2的大小:
如果方法返回正整数,则表示o1大于o2
如果返回0,表示相等
如果返回负整数,表示o1小于o2
Java中的对象,正常情况下只能比较:==,或!=。不能使用>或<的,但是再开发场景中,我们需要对多个对象进行排序,言外之意,就需要比较对象的大小。如何实现?使用两个接口中任何一个:Comparable或Comparator
6.Comparable接口和Comparator使用的对比
Comparable接口的方式一旦一定,保证Comparable接口实现类的对象在任何位置都可以比较大小
Comparator接口属于临时性的比较