Date:
- 概述:Date类的对象在Java中代表的是当前所在系统的此刻日期时间。
- Date的构造器:public Date() 创建一个Date对象,代表的是系统当前此刻日期时间。public Date(long time) 把时间毫秒值转换成Date日期对象。
- Date的常用方法:public long getTime() 获取时间对象的毫秒值。public void setTime(long time) 设置日期对象的时间为当前时间毫秒值对应的时间。
simpleDateFormat类:
- 作用:
-
- 可以对Date对象或时间毫秒值格式化成我们喜欢的时间形式。
- 也可以把字符串的时间形式解析成日期对象。
- simpleDateFormat的构造器:
-
- public SimpleDateFormat() 构造一个SimpleDateFormat,使用默认格式
- public SimpleDateFormat(String pattern) 构造一个SimpleDateFormat,使用指定的格式。、
- SimpleDateFormat的格式化方法:
-
- public final String format(Date date) 将日期格式化成日期/时间字符串
- public final String format(Object time) 将时间毫秒值式化成日期/时间字符串
- SimpleDateFormat解析字符串时间成为日期对象
-
- public Date parse(String source) 从给定字符串的开始解析文本以生成日期。
Calendar:
- 概述:Calendar代表了系统此刻日期对应的日历对象。Calendar是一个抽象类,不能直接创建对象。
- Calendar日历类创建日历对象的方法:public static Calendar getInstance()获取当前日历对象。
- Calendar常用方法:
-
- public int get(int field) 取日期中的某个字段信息。
- public void set(int field ,int value) 修改日历的某个字段信息。
-
- public void add(int field,int amount) 为某个字段增加/减少指定的值
- public final Date getTime() 拿到此刻日期对象。
-
- public long getTimeInMillis() 拿到此刻时间毫秒值
- 注意:calendar是可变日期对象,一旦修改后其对象本身表示的时间将产生变化。
JDK8新增日期类:
- 从Java 8开始,java.time包提供了新的日期和时间APl,主要涉及的类型有:
-
- LocalDate:不包含具体时间的日期。
- LocalTime:不含日期的时间。
-
- LocalDateTime:包含了日期及时间。
- Instant:代表的是时间戳。
-
- DateTimeFormatter用于做时间的格式化和解析的。
- Duration:用于计算两个“时间”间隔。
-
- Period:用于计算两个“日期”间隔。
- 新增的API严格区分了时刻、本地日期、本地时间,并且,对日期和时间进行运算更加方便。其次,新API的类型几乎全部是不变类型(和String的使用类似),可以放心使用不必担心被修改。
- LocalDateTime综合了LocalDate和LocalTime里面的方法。这些方法返回的是一个新的实例引用,因为LocalDateTime ,LocalDate . LocalTime 都是不可变的。
plusDays, plusweeks, plusMonths, plusYears | 向当前LocalDate对象添加几天、几周、几个月、几年 |
minusDays, minuswceks,minusMonths, minusYears | 从当前LocalDate对象减去几天、几周、几个月、几年 |
withDayOfMonth, withDayofYear, withMonth, withYear | 将月份天数、年份天数、月份、年份修改为指定的值并返回新的LocalDate对象 |
isBefore, isAfter | 比较两个LocalDate |
lnstant时间戳:
- JDK8获取时间戳特别简单,且功能更丰富。Instant类由一个静态的工厂方法now()可以返回当前时间戳。
- 时间戳是包含日期和时间的,与java.util.Date很类似,事实上Instant就是类似JDK8以前的Date。
- lnstant和Date这两个类可以进行转换。
DateTimeFormatter
- 在JDK8中,引入了一个全新的日期与时间格式器DateTimeFormatter。正反都能调用format方法。
Period:
- 在Java8中,我们可以使用以下类来计算日期间隔差异: java.time.Period
- 主要是 Period类方法getYears(),getMonths()和getDays()来计算,只能精确到年月日。
- 用于LocalDate 之间的比较。
Duration:
- 在Java8中,我们可以使用以下类来计算时间间隔差异: java.time.Duration
- 提供了使用基于时间的值测量时间量的方法。
- 用于LocalDateTime之间的比较。也可用于Instant 之间的比较。
java.time.temporal.ChronoUnit:
- ChronoUnit类可用于在单个时间单位内测量一段时间,这个工具类是最全的了,可以用于比较所有的时间单位。