计算机中的时间原点
 1970年1月1日 00:00:00
我国的时间原点则是:1970年1月1日 08:00:00
Date类常用的构造方法
 public Date(); // 空参构造,表示默认时间也就是电脑的当前时间。
 public Date(long date); // 有参构造,表示指定时间。
Date类常用的成员方法
 public long getTime(){} // 获取时间对象的毫秒值。
 public void setTime(long time){} // 设置时间,传递时间原点所过的毫秒值。
SimpleDateFormat类——对Date对象进行格式化和解析
 常用字母对应解析如下:(区分大小写)
 y —— 年
 M —— 月
 d —— 日
 H —— 时
 m —— 分
 s —— 秒
SimpleDateFormat类的构造方法
 public SimpleDateFormat() // 空参构造,使用默认格式。
 public SimpleDateFormat(String pattern) // 有参构造,将对应字母以字符串的形式传入你想要的格式。
SimpleDateFormat格式化和解析日期
 1.格式化:将Date的时间格式化为日期字符串
		Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(date);
        System.out.println(sdf.format(date));
打印结果:
Mon Feb 21 15:26:57 CST 2022
2022-02-21 15:26:57
 
2.解析:将日期字符串解析为时间
		String s = "2022-02-21 15:26:57";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
        //这里的格式必须跟字符串的格式一模一样
        Date date = sdf.parse(s); // 这里会有异常,直接throws抛出就行
        System.out.println(date);
        
打印结果:
Mon Feb 21 15:26:57 CST 2022
 
JDK8新增的日期类
 JDK8中将Date对象分成了以下三个类:
 LocalDate:表示年月日。
 LocalTime:表示时分秒。
 LocalDateTime:便是年月日 时分秒。
 (最常用的时LocalDateTime类)
LocalDateTime类
 1.public static LocalDateTime now() // 获取系统当前时间的方法。
 2.public static LocalDateTime of(年,月,日,时,分,秒) // 传入对应int值返回时间格式的方法。
LocalDateTime类的获取方法
 public int getYear() // 获取年。
 public int getMonthValue() // 获取月。
 public int getDayOfMonth() // 获取月中第几天。
 public int getDayOfYear() // 获取年中第几天。
 public DayOfWeek() // 获取星期。
 public int getMinute() // 获取分钟。
 public int getHour() // 获取小时。
LocalDateTime类的转换方法
 public LocalDate toLocalDate() // 去除时分秒
 public LocalDate toLocalTime() // 去除年月日
LocalDateTime类的格式化和解析
 public String format(指定格式) // 把一个LocalDateTime对象按指定格式转换成一个字符串。
 public LocalDateTime parse(待解析的字符串,解析格式) // 把日期字符串解析为一个LocalDateTime对象。
 JDK8中的格式化器:public static DateTimeFormatter ofPattern(String pattern) // 按照传入的字符串格式 创建一个DateTimeFormatter格式化器对象。
格式化
		// 获取LocalDateTime对象
        LocalDateTime now = LocalDateTime.now();
        System.out.println("格式化前 " + now);
        // 获取格式化器
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
        String s_now = now.format(dateTimeFormatter);
        System.out.println("格式化后 " + s_now);
打印结果:
格式化前 2022-02-21T16:51:27.098
格式化后 2022年02月21日 16:51:27
 
解析
		String s = "2022年02月21日 16:51:27";
        System.out.println("解析前 " + s);
        // 获取格式化器
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
        LocalDateTime localDateTime = LocalDateTime.parse(s, dateTimeFormatter);
        System.out.println("解析后 " + localDateTime);
打印结果:
解析前 2022年02月21日 16:51:27
解析后 2022-02-21T16:51:27
 
LocalDateTime类的plus系列方法
 先要获取LocalDateTime对象再调用,传正值加 负值减。
 public LocalDateTime plusYear(long year) // 年加或年减。
 public LocalDateTime plusMonths(long month) // 月加或月减。
 public LocalDateTime plusDays(long day) // 日加或日减。
 public LocalDateTime plusHours(long hour) // 时加或时减。
 public LocalDateTime plusMinutes(long minute) // 分加或分减。
 public LocalDateTime plusSeconds(long second) // 秒加或秒减。
 public LocalDateTime plusWeeks(long week) // 周加或周减。
LocalDateTime类的minus系列方法
 先要获取LocalDateTime对象再调用,与plus相反。
 public LocalDateTime minusYear(long year) // 年减或年加。
 public LocalDateTime minusMonths(long month) // 月减或月加。
 public LocalDateTime minusDays(long day) // 日减或日加。
 public LocalDateTime minusHours(long hour) // 时减或时加。
 public LocalDateTime minusMinutes(long minute) // 分减或分加。
 public LocalDateTime minusSeconds(long second) // 秒减或秒加。
 public LocalDateTime minusWeeks(long week) // 周减或周加。
LocalDateTime类的with系列方法
 先要获取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(开始时间,结束时间) // 计算出时间间隔并返回Period对象。(传入的时间都是LocalDate对象)
 public int getYears() // 获取间隔对象的间隔年数。
 public int getMonths() // 获取间隔对象的间隔月数。(忽略年的月差)
 public int getDays() // 获取间隔对象的间隔天数。
 public long toTotalMonths() // 获取间隔对象的间隔总月数。(不忽略年的总月数)
Duration类时间间隔对象
 public static Duration between(开始时间,结束时间) // 计算出时间间隔并返回Period对象。(形参是接口类,可以传LocalDateTime对象)
 public long toDays() // 获取间隔的天数
 public long toHours() // 获取间隔的小时数
 public long totoMinutes() // 获取间隔的分钟数
 public long toMillis() // 获取间隔的毫秒数
 public long toNanos() // 获取间隔的纳秒数










