生活中的时间
- 北京时间需要在世界标准1时间上加8小时
- 1秒 = 1000毫秒
- 计算机中的时间原点为:1970年1月1日00:00:00
Date类的构造方法
Date date1 = new Date();
把当前时间(计算机系统时间)封装成一个Date对象
Date date2 = new Date(0L);
把从时间原点开始,过了指定毫秒的时间,封装成一个Date对象,需要考虑时差问题
Date类的常用方法
| 方法名 | 说明 |
| —- | —- |
| public long getTime()
| 获取时间对象的毫秒值 |
| public void setTime(long time)
| 设置时间,传递毫秒值 |
SimpleDateFormat类
概述:SimpleDateFormat可以对Date对象,进行格式化和解析
格式化:Date对象 ➡️ 2020年1月1日 00:00:00
解析:2020年1月1日 00:00:00 ➡️ Date对象
常用模式字母及对应关系如下:
例子:2020-11-11 00:00:00 对应 yyyy-MM-dd HH:mm:ss
方法名 |
说明 |
public SimpleDateFormat() |
构造一个SimpleDateFormat,使用默认格式 |
public SimpleDateFormat(String pattern) |
构造一个SimpleDateFormat,使用指定的格式 |
SimpDateFormat小结
- 格式化(从date到String)
public final String format(Date date)
:把时间按照固定格式进行展示 - 解析(从String到Date)
public Date parse(String source)
:需要对时间进行计算的时候使用
JDK8时间类
LocalDateTime创建方法
| 方法名 | 说明 |
| —- | —- |
| public static localDateTime now()
| 获取当前系统时间 |
| public static LocalDateTime of(年,月,日,时,分,秒)
| 使用指定年月日和时分秒初始化一个LocalDateTime对象 |
LocalDateTime获取方法
方法名 |
说明 |
public int getYear() |
获取年 |
public int getMonthValue() |
获取月份(1-12) |
public int getDayOfMonth() |
获取月份中的第几天(1-31) |
public int getDayOfYear() |
获取一年中的第几天(1-366) |
public DayOfWeek getDayofWeek() |
获取星期 |
public int getMinute() |
获取分钟 |
public int getHour() |
获取小时 |
LocalDateTime转换方法
方法名 |
说明 |
public LocalDate toLocalDate() |
转换成为一个LocalDate对象 |
public LocalTime toLocalTime() |
转换成为一个LocalTime对象 |
LocalDateTime格式化和解析
方法名 |
说明 |
public String format(指定格式) |
把一个LocalDateTime格式化成为一个字符串 |
public static LocalDateTime parse(准备解析的字符串,解析格式) |
把一个日期字符串解析成为一个LocalDateTime对象 |
JDK8的日期格式化器:DateTimeFormatter
方法名 |
说明 |
public static DateTimeFormatter ofPattern(String pattern) |
使用指定的日期模版获取一个日期格式化器DateTimeFormatter对象 |
LocalDateTime增加或者减少时间的方法
方法名 |
说明 |
public LocalDateTime plusYears(long years) |
添加或者减去年 |
public LocalDateTime plusMonths(long months) |
添加或者减去月 |
public LocalDateTime plusDays(long days) |
添加或者减去日 |
public LocalDateTime plusHours(long hours) |
添加或者减去时 |
public LocalDateTime plusMinutes(long minutes) |
添加或者减去分 |
public LocalDateTime plusSeconds(long seconds) |
添加或者减去秒 |
public LocalDateTime plusWeeks(long weeks) |
添加或者减去周 |
plus注意点:
- 方法返回的一个新的LocalDateTime对象,返回值就是修改之后的结果
- 参数为正,就是往后加
- 参数为负,就是往前减
| 方法名 | 说明 |
| —- | —- |
|
public LocalDateTime minusYears(long years)
| 减去或者添加年 |
| public LocalDateTime minusMonths(long months)
| 减去或者添加月 |
| public LocalDateTime minusDays(long days)
| 减去或者添加日 |
| public LocalDateTime minusHours(long hours)
| 减去或者添加时 |
| public LocalDateTime minusMinutes(long minutes)
| 减去或者添加分 |
| public LocalDateTime minusSeconds(long seconds)
| 减去或者添加秒 |
| public LocalDateTime minusWeeks(long weeks)
| 减去或者添加周 |
minus注意点:
- 方法返回的一个新的LocalDateTime对象,返回值就是修改之后的结果
- 参数为正,就是往前减
- 参数为负,就是往后加
LocalDateTime修改方法
| 方法名 | 说明 |
| —- | —- |
| public LocalDateTime withYear(int year)
| 直接修改年 |
| public LocalDateTime withMonth(int month)
| 直接修改月 |
| public LocalDateTime withDayOfMonth(int dayOfMonth)
| 直接修改日期(一个月中的第几天) |
| public LocalDateTime withDayOfYear(int dayOfYear)
| 直接修改日期(一年中的第几天) |
| public LocalDateTime withHour(int hour)
| 直接修改小时 |
| public LocalDateTime withMinute(int minute)
| 直接修改分钟 |
| public LocalDateTime withSecond(int second)
| 直接修改秒 |
时间间隔对象
Period
方法名 |
说明 |
public static Period between(开始时间,结束时间) |
计算两个“时间”的间隔 |
public int getYears() |
获得这段时间的年数 |
public int getMonths() |
获得此期间的月数 |
public int getDays() |
获得此期间的天数 |
public long toTotalMonths() |
获得此期间的总月数 |
Duration
方法名 |
说明 |
public static Durationbetween(开始时间,结束时间) |
计算两个“时间”的间隔 |
public long toSeconds() |
获得此时间间隔的秒 |
public int toMillis() |
获得此时间间隔的毫秒 |
public int toNanos() |
获得此时间间隔的纳秒 |
小结
LocalDate 表示日期(年月日)
LocalTime 表示时间(时分秒)
LocalDateTime 表示时间加日期(年月日时分秒)
LocalDateTime可以转化为LocalDate或者LocalTime
- 创建时间对象(now,of)
- 获取时间对象中的年,月,日,时,分,秒
- 格式化(format)
- 解析(parse)
- 增加或减少时间的方法(plus开头,minus开头)
- 修改时间(with开头)
计算时间间隔的两个类:
Period
Duration